private void ClearWindow() { m_TreeRoot = null; for (int i = 0; i < m_TreeRootObj.transform.childCount; ++i) { GameObject.Destroy(m_TreeRootObj.transform.GetChild(i).gameObject); } }
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); }); }
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; }
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; } }); }
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); } }
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); }
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); }
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; } }
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; } }