您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
66 行
2.0 KiB
66 行
2.0 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEditor.ShaderGraph;
|
|
|
|
namespace UnityEditor.Graphing
|
|
{
|
|
public enum ModificationScope
|
|
{
|
|
Nothing = 0,
|
|
Node = 1,
|
|
Graph = 2,
|
|
Topological = 3
|
|
}
|
|
|
|
public delegate void OnNodeModified(INode node, ModificationScope scope);
|
|
|
|
public interface INode
|
|
{
|
|
OnNodeModified onModified { get; set; }
|
|
void Dirty(ModificationScope scope);
|
|
IGraph owner { get; set; }
|
|
Guid guid { get; }
|
|
Identifier tempId { get; set; }
|
|
Guid RewriteGuid();
|
|
string name { get; set; }
|
|
bool canDeleteNode { get; }
|
|
void GetInputSlots<T>(List<T> foundSlots) where T : ISlot;
|
|
void GetOutputSlots<T>(List<T> foundSlots) where T : ISlot;
|
|
void GetSlots<T>(List<T> foundSlots) where T : ISlot;
|
|
void AddSlot(ISlot slot);
|
|
void RemoveSlot(int slotId);
|
|
SlotReference GetSlotReference(int slotId);
|
|
T FindSlot<T>(int slotId) where T : ISlot;
|
|
T FindInputSlot<T>(int slotId) where T : ISlot;
|
|
T FindOutputSlot<T>(int slotId) where T : ISlot;
|
|
IEnumerable<ISlot> GetInputsWithNoConnection();
|
|
DrawState drawState { get; set; }
|
|
bool hasError { get; }
|
|
void ValidateNode();
|
|
void UpdateNodeAfterDeserialization();
|
|
}
|
|
|
|
public static class NodeExtensions
|
|
{
|
|
public static IEnumerable<T> GetSlots<T>(this INode node) where T : ISlot
|
|
{
|
|
var slots = new List<T>();
|
|
node.GetSlots(slots);
|
|
return slots;
|
|
}
|
|
|
|
public static IEnumerable<T> GetInputSlots<T>(this INode node) where T : ISlot
|
|
{
|
|
var slots = new List<T>();
|
|
node.GetInputSlots(slots);
|
|
return slots;
|
|
}
|
|
|
|
public static IEnumerable<T> GetOutputSlots<T>(this INode node) where T : ISlot
|
|
{
|
|
var slots = new List<T>();
|
|
node.GetOutputSlots(slots);
|
|
return slots;
|
|
}
|
|
}
|
|
}
|