Пример #1
0
        public void AddNodeType(NODE_TYPE nodeType, string nodeName, string identificationName)
        {
            Node_Draw_Info_Item item = new Node_Draw_Info_Item(nodeType);

            item.SetName(nodeName);
            item.SetIdentification(identificationName);
            string name = string.Format("{0}/{1}", _nodeTypeName, nodeName);
            KeyValuePair <string, Node_Draw_Info_Item> kv = new KeyValuePair <string, Node_Draw_Info_Item>(name, item);

            _nodeArr.Add(kv);
        }
Пример #2
0
        // 添加节点
        public void AddNode(Node_Draw_Info_Item info, Vector3 mousePosition, int openSubTreeId)
        {
            NodeValue newNodeValue = new NodeValue();

            newNodeValue.id = GetNewNodeId();

            if (BehaviorDataController.Instance.BehaviorTreeData.rootNodeId < 0)
            {
                BehaviorDataController.Instance.BehaviorTreeData.rootNodeId = newNodeValue.id;
                newNodeValue.isRootNode = true;
            }

            newNodeValue.nodeName           = info._nodeName;
            newNodeValue.identificationName = info._identificationName;
            newNodeValue.NodeType           = (int)info._nodeType;
            newNodeValue.parentNodeID       = -1;
            newNodeValue.function           = NodeDescript.GetFunction((NODE_TYPE)info._nodeType);

            RectT rectT = new RectT();
            Rect  rect  = new Rect(mousePosition.x, mousePosition.y, rectT.width, rectT.height);

            newNodeValue.position = RectTool.RectToRectT(rect);

            newNodeValue.parentSubTreeNodeId = openSubTreeId;

            List <NodeValue> NodeList = BehaviorDataController.Instance.NodeList;

            NodeList.Add(newNodeValue);

            if (openSubTreeId >= 0)
            {
                bool hasEntryNode = false;
                for (int i = 0; i < NodeList.Count; ++i)
                {
                    if (NodeList[i].parentSubTreeNodeId == openSubTreeId &&
                        (NodeList[i].subTreeEntry))
                    {
                        hasEntryNode = true;
                        break;
                    }
                }
                if (!hasEntryNode)
                {
                    ChangeSubTreeEntryNode(newNodeValue.parentSubTreeNodeId, newNodeValue.id);
                }
            }
        }