コード例 #1
0
 private void ClearWindow()
 {
     m_TreeRoot = null;
     for (int i = 0; i < m_TreeRootObj.transform.childCount; ++i)
     {
         GameObject.Destroy(m_TreeRootObj.transform.GetChild(i).gameObject);
     }
 }
コード例 #2
0
 private void ClearWindow()
 {
     m_TreeRoot = null;
     for (int i = 0; i < m_TreeRootObj.transform.childCount; ++i)
     {
         GameObject.Destroy(m_TreeRootObj.transform.GetChild(i).gameObject);
     }
 }
コード例 #3
0
 public void OnClickOpen()
 {
     m_SelectPanel.SelectPlane((ID) =>
     {
         Clear();
         m_Root = m_TreeParser.CreateBehaviourTree(ID, m_NodeTempalte, ComponentTool.FindChild("TreeRoot", null), LoadAIConfig());
         m_Root.Render(0);
     });
 }
コード例 #4
0
    public AIDebugerTreeRoot CreateBehaviourTree(int iId, GameObject template, GameObject TreeRoot, XElement xml,bool isRuntime = false)
    {
        if (iId <= 0)
        {
            return null;
        }
        m_Template = template;
        AIDebugerTreeRoot root = new AIDebugerTreeRoot(iId, template);
        ComponentTool.Attach(TreeRoot.transform, root.m_ObjRoot.transform);

        ParseBTXml(root, xml);
        return root;
    }
コード例 #5
0
 public void OnClickCreateRoot()
 {
     m_SelectPanel.CreateRoot((id, desc) =>
     {
         if (null != desc)
         {
             Clear();
             AIDebugerTreeRoot root = new AIDebugerTreeRoot(id, m_NodeTempalte);
             root.Desc = desc;
             ComponentTool.Attach(ComponentTool.FindChild("TreeRoot", null).transform, root.m_ObjRoot.transform);
             m_Root = root;
         }
     });
 }
コード例 #6
0
    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);
        }
    }
コード例 #7
0
    public AIDebugerTreeRoot CreateBehaviourTree(int iId, GameObject template, GameObject TreeRoot, XElement xml, bool isRuntime = false)
    {
        if (iId <= 0)
        {
            return(null);
        }
        m_Template = template;
        AIDebugerTreeRoot root = new AIDebugerTreeRoot(iId, template);

        ComponentTool.Attach(TreeRoot.transform, root.m_ObjRoot.transform);

        ParseBTXml(root, xml);
        return(root);
    }
コード例 #8
0
    public override void OnOpen(object param)
    {
        base.OnOpen(param);
        if (!(param is AIAgent))
        {
            return;
        }

        ClearWindow();

        m_AIAgent = param as AIAgent;
        var m_TreeParser = new AIDebugerTreeParser();
        m_TreeRoot = m_TreeParser.CreateBehaviourTree(m_AIAgent.GetID(), m_NodeTemplate, m_TreeRootObj, ConfigManager.Instance.GetAIConfigTable());
        InitTree(); 

        m_TreeRoot.Render(0);
        m_AIAgent.SetDebugMode(true);
        UITickTask.Instance.RegisterToUpdateList(Update);
    }
コード例 #9
0
    public override void OnOpen(object param)
    {
        base.OnOpen(param);
        if (!(param is AIAgent))
        {
            return;
        }

        ClearWindow();

        m_AIAgent = param as AIAgent;
        var m_TreeParser = new AIDebugerTreeParser();

        m_TreeRoot = m_TreeParser.CreateBehaviourTree(m_AIAgent.GetID(), m_NodeTemplate, m_TreeRootObj, ConfigManager.Instance.GetAIConfigTable());
        InitTree();

        m_TreeRoot.Render(0);
        m_AIAgent.SetDebugMode(true);
        UITickTask.Instance.RegisterToUpdateList(Update);
    }
コード例 #10
0
    private void ParseBTXml(AIDebugerTreeRoot root, XElement xml)
    {
        IEnumerable<XElement> behaviorTrees = xml.Elements(BTDataKey.BEHAVIOUR_TREE_ROOT);
        if (null == behaviorTrees)
        {
            return;
        }

        foreach (XElement element in behaviorTrees)
        {
            int iID = 0;
            int.TryParse(element.Attribute(BTDataKey.BEHAVIOUR_TREE_ID).Value, out iID);
            if (iID != root.ID)
            {
                continue;
            }
            string desc = element.Attribute("desc").Value;
            root.Desc = desc;
            ParseBTNode(root, element);
            break;
        }
    }
コード例 #11
0
    private void ParseBTXml(AIDebugerTreeRoot root, XElement xml)
    {
        IEnumerable <XElement> behaviorTrees = xml.Elements(BTDataKey.BEHAVIOUR_TREE_ROOT);

        if (null == behaviorTrees)
        {
            return;
        }

        foreach (XElement element in behaviorTrees)
        {
            int iID = 0;
            int.TryParse(element.Attribute(BTDataKey.BEHAVIOUR_TREE_ID).Value, out iID);
            if (iID != root.ID)
            {
                continue;
            }
            string desc = element.Attribute("desc").Value;
            root.Desc = desc;
            ParseBTNode(root, element);
            break;
        }
    }