示例#1
0
        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);
        }
        void Load(string path)
        {
            NodeManager tmp = AssetDatabase.LoadAssetAtPath(path, typeof(NodeManager)) as NodeManager;

            AIEditorWindow.manager = tmp.Clone();
        }