public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeMoveToNode;

        m_InputTargetId.value      = ((AIDebugerTreeMoveToNode)(m_EditNode)).m_iTargetId.ToString();
        m_InputFollowPointId.value = ((AIDebugerTreeMoveToNode)(m_EditNode)).m_iFollowPointId.ToString();
    }
Exemple #2
0
 public void RemoveChild(AIDebugerTreeNode node)
 {
     if (null == node)
     {
         return;
     }
     m_ChildList.Remove(node);
 }
    public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeMoveToNode;

        m_InputTargetId.value = ((AIDebugerTreeMoveToNode)(m_EditNode)).m_iTargetId.ToString();
        m_InputFollowPointId.value = ((AIDebugerTreeMoveToNode)(m_EditNode)).m_iFollowPointId.ToString();

    }
 public void RemoveChild(AIDebugerTreeNode node)
 {
     if (null == node)
     {
         return;
     }
     m_ChildList.Remove(node);
 }
Exemple #5
0
 public void AddChild(AIDebugerTreeNode node)
 {
     if (null == node)
     {
         return;
     }
     m_ChildList.Add(node);
     ComponentTool.Attach(m_ObjChildRoot.transform, node.m_ObjRoot.transform);
 }
 public void AddChild(AIDebugerTreeNode node)
 {
     if (null == node)
     {
         return;
     }
     m_ChildList.Add(node);
     ComponentTool.Attach(m_ObjChildRoot.transform,node.m_ObjRoot.transform);
 }
    private void InitTree(BTNode source, AIDebugerTreeNode desc)
    {
        desc.m_NodeData = source;

        for (int i = 0; i < source.GetChildList().Count; ++i)
        {
            InitTree(source.GetChildList()[i], desc.m_ChildList[i]);
        }
    }
    private void InitTree(BTNode source,AIDebugerTreeNode desc)
    {
        desc.m_NodeData = source;

        for (int i = 0; i < source.GetChildList().Count; ++i)
        {
            InitTree(source.GetChildList()[i], desc.m_ChildList[i]);
        }
    }
    private void GenXml(AIDebugerTreeNode parent, XElement btNodeE)
    {
        foreach (AIDebugerTreeNode node in parent.m_ChildList)
        {
            XElement xe = new XElement("btNode");
            btNodeE.Add(xe);

            if (node.m_strName == "选择节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_SELECTOR));
            }
            else if (node.m_strName == "顺序节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_SEQUENCE));
            }
            else if (node.m_strName == "时间装饰节点")
            {
                AIDebugerTreeInverterNode n = node as AIDebugerTreeInverterNode;
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_DECORATOR));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_INVERTER));

                xe.Add(GetPropertyElement("inverter", n.m_iInverter));
            }
            else if (node.m_strName == "条件函数节点")
            {
                AIDebugerTreeConditionNode n = node as AIDebugerTreeConditionNode;
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_CONDITION));
                xe.Add(GetPropertyElement("targetId", n.m_iLimitId));
                xe.Add(GetPropertyElement("limitId", n.m_iLimitId));
            }
            else if (node.m_strName == "休闲行为节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_ACTION));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_IDLE));
            }
            else if (node.m_strName == "跟随玩家行为节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_ACTION));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_MOVETO));
                AIDebugerTreeMoveToNode n = node as AIDebugerTreeMoveToNode;
                xe.Add(GetPropertyElement("targetId", n.m_iTargetId));
                xe.Add(GetPropertyElement("followPointId", n.m_iFollowPointId));
            }

            if (node.m_ChildList.Count > 0)
            {
                GenXml(node, xe);
            }
        }
    }
    public void GenXML(XElement root, AIDebugerTreeNode parent)
    {
        AIDebugerTreeRoot rootNode      = parent as AIDebugerTreeRoot;
        XElement          behaviorTreeE = new XElement("behaviorTree");

        root.Add(behaviorTreeE);
        behaviorTreeE.Add(new XAttribute("id", rootNode.ID));
        behaviorTreeE.Add(new XAttribute("desc", rootNode.Desc));

        if (rootNode.m_ChildList.Count > 0)
        {
            GenXml(rootNode, behaviorTreeE);
        }
    }
Exemple #11
0
 public AIDebugerTreeNode GetSelectedNode()
 {
     if (m_bIsSelected)
     {
         return(this);
     }
     for (int i = 0; i < m_ChildList.Count; ++i)
     {
         AIDebugerTreeNode res = m_ChildList[i].GetSelectedNode();
         if (null != res)
         {
             return(res);
         }
     }
     return(null);
 }
Exemple #12
0
 public AIDebugerTreeNode GetNodeRoot(AIDebugerTreeNode child)
 {
     for (int i = 0; i < m_ChildList.Count; ++i)
     {
         if (m_ChildList[i] == child)
         {
             return(this);
         }
     }
     for (int i = 0; i < m_ChildList.Count; ++i)
     {
         var res = m_ChildList[i].GetNodeRoot(child);
         if (res != null)
         {
             return(res);
         }
     }
     return(null);
 }
    private void ParseBTNode(AIDebugerTreeNode root, XElement btNodeE)
    {
        IEnumerable<XElement> nodes = btNodeE.Elements(BTDataKey.NODE_NAME);
        if (null == nodes)
        {
            return;
        }

        foreach (XElement element in nodes)
        {
            AIDebugerTreeNode node = GetNode(element);
            if (null != node)
            {
                root.AddChild(node);
            }

            ParseBTNode(node, element);
        }
    }
    private void ParseBTNode(AIDebugerTreeNode root, XElement btNodeE)
    {
        IEnumerable <XElement> nodes = btNodeE.Elements(BTDataKey.NODE_NAME);

        if (null == nodes)
        {
            return;
        }

        foreach (XElement element in nodes)
        {
            AIDebugerTreeNode node = GetNode(element);
            if (null != node)
            {
                root.AddChild(node);
            }

            ParseBTNode(node, element);
        }
    }
Exemple #15
0
    public void OnEditNode(AIDebugerTreeNode node, Action OnEditCallBack)
    {
        Init();
        m_EditCallBack   = OnEditCallBack;
        m_CreateCallBack = null;
        gameObject.SetActive(true);

        switch (node.m_strName)
        {
        case "选择节点":
        case "顺序节点":
            m_FirstPoplist.value  = "复合节点";
            m_SecondPoplist.items = m_CompositeTagList;
            break;

        case "时间装饰节点":
            m_FirstPoplist.value  = "装饰节点";
            m_SecondPoplist.items = m_DecoratorTagList;
            break;

        case "条件函数节点":
            m_FirstPoplist.value  = "条件节点";
            m_SecondPoplist.items = m_ConditionTagList;
            break;

        case "休闲行为节点":
        case "跟随玩家行为节点":
            m_FirstPoplist.value  = "行为节点";
            m_SecondPoplist.items = m_ActionTagList;
            break;
        }
        m_SecondPoplist.value = node.m_strName;

        m_SecondPoplist.enabled = false;
        m_FirstPoplist.enabled  = false;

        OnChangeSecond();
        m_CurrentEditPanel.InitPanel(node);
    }
    public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeInverterNode;

        m_InputInverterId.value = ((AIDebugerTreeInverterNode)(m_EditNode)).m_iInverter.ToString();
    }
Exemple #17
0
 public virtual void InitPanel(AIDebugerTreeNode node)
 {
     m_EditNode = node;
 }
    public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeConditionNode;

        m_InputLimitId.value = ((AIDebugerTreeConditionNode)(m_EditNode)).m_iLimitId.ToString();
    }
    public void OnEditNode(AIDebugerTreeNode node,Action OnEditCallBack)
    {
        Init();
        m_EditCallBack = OnEditCallBack;
        m_CreateCallBack = null;
        gameObject.SetActive(true);

        switch (node.m_strName)
        {
            case "选择节点":
            case "顺序节点":
                m_FirstPoplist.value = "复合节点";
                m_SecondPoplist.items = m_CompositeTagList;
                break;
            case "时间装饰节点":
                m_FirstPoplist.value = "装饰节点";
                m_SecondPoplist.items = m_DecoratorTagList;
                break;
            case "条件函数节点":
                m_FirstPoplist.value = "条件节点";
                m_SecondPoplist.items = m_ConditionTagList;
                break;
            case "休闲行为节点":
            case "跟随玩家行为节点":
                m_FirstPoplist.value = "行为节点";
                m_SecondPoplist.items = m_ActionTagList;
                break;
        }
        m_SecondPoplist.value = node.m_strName;

        m_SecondPoplist.enabled = false;
        m_FirstPoplist.enabled = false;

        OnChangeSecond();
        m_CurrentEditPanel.InitPanel(node);

    }
 public AIDebugerTreeNode GetNodeRoot(AIDebugerTreeNode child)
 {
     for (int i = 0; i < m_ChildList.Count; ++i)
     {
         if (m_ChildList[i] == child)
         {
             return this;
         }
     }
     for (int i = 0; i < m_ChildList.Count; ++i)
     {
         var res = m_ChildList[i].GetNodeRoot(child);
         if (res != null)
         {
             return res;
         }
     }
     return null;
 }
 public virtual void InitPanel(AIDebugerTreeNode node)
 {
     m_EditNode = node;
 }
    public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeInverterNode;

        m_InputInverterId.value = ((AIDebugerTreeInverterNode)(m_EditNode)).m_iInverter.ToString();
    }
Exemple #23
0
    public override void InitPanel(AIDebugerTreeNode node)
    {
        m_EditNode = node as AIDebugerTreeConditionNode;

        m_InputLimitId.value = ((AIDebugerTreeConditionNode)(m_EditNode)).m_iLimitId.ToString();
    }
    private void GenXml(AIDebugerTreeNode parent, XElement btNodeE)
    {
        foreach (AIDebugerTreeNode node in parent.m_ChildList)
        {
            XElement xe = new XElement("btNode");
            btNodeE.Add(xe);

            if (node.m_strName == "选择节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_SELECTOR));
            }
            else if (node.m_strName == "顺序节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_SEQUENCE));
            }
            else if (node.m_strName == "时间装饰节点")
            {
                AIDebugerTreeInverterNode n = node as AIDebugerTreeInverterNode;
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_DECORATOR));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_INVERTER));

                xe.Add(GetPropertyElement("inverter", n.m_iInverter));
            }
            else if (node.m_strName == "条件函数节点")
            {
                AIDebugerTreeConditionNode n = node as AIDebugerTreeConditionNode;
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_CONDITION));
                xe.Add(GetPropertyElement("targetId", n.m_iLimitId));
                xe.Add(GetPropertyElement("limitId", n.m_iLimitId));
            }
            else if (node.m_strName == "休闲行为节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_ACTION));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_IDLE));
            }
            else if (node.m_strName == "跟随玩家行为节点")
            {
                xe.Add(new XAttribute("nodeType", BTDataKey.NODE_TYPE_ACTION));
                xe.Add(new XAttribute("name", BTDataKey.NODE_NAME_MOVETO));
                AIDebugerTreeMoveToNode n = node as AIDebugerTreeMoveToNode;
                xe.Add(GetPropertyElement("targetId", n.m_iTargetId));
                xe.Add(GetPropertyElement("followPointId", n.m_iFollowPointId));
            }

            if (node.m_ChildList.Count > 0)
            {
                GenXml(node, xe);
            }
        }
    }
    public void GenXML(XElement root,AIDebugerTreeNode parent)
    {
        AIDebugerTreeRoot rootNode = parent as AIDebugerTreeRoot;
        XElement behaviorTreeE = new XElement("behaviorTree");
        root.Add(behaviorTreeE);
        behaviorTreeE.Add(new XAttribute("id", rootNode.ID));
        behaviorTreeE.Add(new XAttribute("desc", rootNode.Desc));

        if (rootNode.m_ChildList.Count > 0)
        {
            GenXml(rootNode, behaviorTreeE);
        }
    }