public void RepleaceNode(StateNode node, Type type) { if (Graph.CheckReplace(node.Data.GetType(), type)) { RegistUndo("replace node"); string json = EditorJsonUtility.ToJson(node.Data); node.SetData(Activator.CreateInstance(type) as IStateNode); EditorJsonUtility.FromJsonOverwrite(json, node.Data); } }
public StateNode AddNode(IStateNode nodeData, Rect bounds) { string name = nodeData.GetType().Name; DisplayNameAttribute disaplayName = nodeData.GetType().GetCustomAttribute <DisplayNameAttribute>(); if (disaplayName != null && !string.IsNullOrWhiteSpace(disaplayName.Name)) { name = disaplayName.Name; } StateNode node = new StateNode { Bounds = bounds, ID = ++IdIndex, Graph = this, Name = name }; node.SetData(nodeData); Nodes.Add(node); return(node); }