Beispiel #1
0
        /// <summary>
        /// 设置选中Agent
        /// </summary>
        /// <param name="agent"></param>
        public void SetSelectedAgent(AgentDesigner agent)
        {
            m_SelectionNodes.Clear();
            m_SelectedTransition = null;

            if (DebugManager.Instance.Debugging)
            {
                DebugManager.Instance.Stop();
            }

            if (Agent != null)
            {
                if (Agent.Nodes.Count > 0)
                {
                    for (int i = 0; i < Agent.Nodes.Count; i++)
                    {
                        NodeDesigner node = Agent.Nodes[i];
                        if (node.Transitions.Count > 0)
                        {
                            for (int j = 0; j < node.Transitions.Count; j++)
                            {
                                Transition   transition = node.Transitions[j];
                                NodeDesigner fromNode   = Agent.FindNodeByID(transition.FromNodeID);
                                NodeDesigner toNode     = Agent.FindNodeByID(transition.ToNodeID);
                                transition.Set(toNode, fromNode);
                            }
                        }
                    }
                    CenterView();
                }
            }
        }
Beispiel #2
0
        public void SetAgent(Agent agent)
        {
            Agent = new AgentDesigner();


            //创建节点
            for (int i = 0; i < agent.BTree.AllNodes.Count; i++)
            {
                BaseNode baseNode = agent.BTree.AllNodes[i];

                NodeDesigner nodeDesigner = new NodeDesigner();
                nodeDesigner.baseNode = baseNode;
                nodeDesigner.NodeData = baseNode.Fields;
                nodeDesigner.Rect     = new Rect(nodeDesigner.NodeData.X, nodeDesigner.NodeData.Y, BehaviorTreeEditorStyles.StateWidth, BehaviorTreeEditorStyles.StateHeight);
                Agent.Nodes.Add(nodeDesigner);
            }

            //初始化Transition
            if (Agent.Nodes.Count > 0)
            {
                for (int i = 0; i < Agent.Nodes.Count; i++)
                {
                    NodeDesigner node = Agent.Nodes[i];
                    SetTransition(node, node.NodeData);
                }
                CenterView();
            }
        }