示例#1
0
        public void Debug(AgentDesigner agent)
        {
            if (agent == null)
            {
                MainForm.Instance.ShowMessage("Agent为空");
                return;
            }

            m_Nodes.Clear();
            VerifyInfo verifyAgent = agent.VerifyAgent();

            if (verifyAgent.HasError)
            {
                MainForm.Instance.ShowMessage("确保行为树编辑正确后才能调试\n" + verifyAgent.Msg);
                return;
            }

            for (int i = 0; i < agent.Nodes.Count; i++)
            {
                NodeDesigner node = agent.Nodes[i];
                if (node.StartNode)
                {
                    m_DebugNode = CreateDebugNode(agent, node);
                    break;
                }
            }

            State = DebugState.Running;
            ContentUserControl.Instance.OnDebugStart();
            MainForm.Instance.ShowInfo("播放成功 时间:" + DateTime.Now);
        }
        private void enterBTN_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text.Trim()))
            {
                MainForm.Instance.ShowMessage("AgentID不能为空");
                MainForm.Instance.ShowInfo("AgentID不能为空");
                return;
            }

            string agentId = textBox1.Text.Trim();

            if (m_Agent.AgentID != agentId)
            {
                if (MainForm.Instance.TreeData.ExistAgent(agentId))
                {
                    MainForm.Instance.ShowMessage(string.Format("已存在AgentID:{0}", agentId));
                    MainForm.Instance.ShowInfo(string.Format("已存在AgentID:{0}", agentId));
                    return;
                }
            }

            m_EditAgent.AgentID  = agentId;
            m_EditAgent.Describe = textBox2.Text.Trim();

            //检验Agent的是否合法
            VerifyInfo verifyAgent = m_EditAgent.VerifyAgent();

            if (verifyAgent.HasError)
            {
                MainForm.Instance.ShowMessage(verifyAgent.Msg);
                return;
            }

            string editContent = XmlUtility.ObjectToString(m_EditAgent);

            if (editContent != m_AgentContent)
            {
                m_Agent.UpdateAgent(m_EditAgent);
                MainForm.Instance.ShowInfo(string.Format("更新Agent:{0}成功 时间:{1}", m_EditAgent.AgentID, DateTime.Now));
            }

            MainForm.Instance.Exec(OperationType.UpdateAgent, m_Agent);
            this.Close();
        }
示例#3
0
        /// <summary>
        /// 校验行为树数据
        /// </summary>
        /// <returns></returns>
        public VerifyInfo VerifyBehaviorTree()
        {
            VerifyInfo verifyAgentID = VerifyAgentID();

            if (verifyAgentID.HasError)
            {
                return(verifyAgentID);
            }

            for (int i = 0; i < m_Agents.Count; i++)
            {
                AgentDesigner agent = m_Agents[i];
                if (agent != null)
                {
                    VerifyInfo verifyAgent = agent.VerifyAgent();
                    if (verifyAgent.HasError)
                    {
                        return(verifyAgent);
                    }
                }
            }
            return(VerifyInfo.DefaultVerifyInfo);
        }