public NodeManager Clone() { NodeManager clone = ScriptableObject.CreateInstance <NodeManager>(); clone.Init(); clone.nodeID = nodeID; foreach (BehaviourTree.Node node in nodes) { clone.nodes.Add(NodeManager.Clone <BehaviourTree.Node>(node)); } foreach (BehaviourTree.Node node in clone.nodes) { if (null != node.parent) { node.parent = clone.FindNode(node.parent.id); } for (int i = 0; i < node.children.Count; i++) { BehaviourTree.Node child = node.children[i]; node.children[i] = clone.FindNode(child.id); } } return(clone); }
static void ShowEditor() { window = EditorWindow.GetWindow <AIEditorWindow>(); window.minSize = new Vector2(800, 600); window.titleContent = new GUIContent(windowTitle); manager = ScriptableObject.CreateInstance <NodeManager>(); manager.Init(); }