using Cysharp.Threading.Tasks; namespace Stary.Evo.StoryEditor { public class NodePlayer { /// /// 节点名称 /// protected string Name; /// /// 图表 /// protected GraphPlayer Graph; /// /// 数据 /// protected NodeData Data; /// /// 初始化标志 /// protected bool Initialized; public NodePlayer(GraphPlayer graph, NodeData data) { Graph = graph; Name = data.name; Data = data; } /// /// 连接节点 /// public virtual bool Connect() { if(Initialized) return false; Initialized = true; return true; } /// /// 初始化 /// public virtual void Init() => Graph.CurrentNodes.Add(this); /// /// 开始执行 /// public virtual UniTask Execute() { Graph.CurrentNodes.Remove(this); return UniTask.CompletedTask; } /// /// 向下继续执行 /// public virtual UniTask MoveNext() => UniTask.CompletedTask; /// /// 停止执行 /// public virtual UniTask Stop() => UniTask.CompletedTask; } }