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); } }