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); }
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); } }
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); }
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); } }
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(); }
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 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); } }