public void Debug(BehaviorTreeDesigner behaviorTree) { if (behaviorTree == null) { MainForm.Instance.ShowMessage("行为树为空"); return; } m_Nodes.Clear(); VerifyInfo verifyBehaviorTree = behaviorTree.VerifyBehaviorTree(); if (verifyBehaviorTree.HasError) { MainForm.Instance.ShowMessage("确保行为树编辑正确后才能调试\n" + verifyBehaviorTree.Msg); return; } for (int i = 0; i < behaviorTree.Nodes.Count; i++) { NodeDesigner node = behaviorTree.Nodes[i]; if (node.StartNode) { m_DebugNode = CreateDebugNode(behaviorTree, node); break; } } State = DebugState.Running; ContentUserControl.Instance.OnDebugStart(); MainForm.Instance.ShowInfo("播放成功 时间:" + DateTime.Now); }
/// <summary> /// 校验行为树数据 /// </summary> /// <returns></returns> public VerifyInfo VerifyBehaviorTree() { VerifyInfo verifyID = VerifyBehaviorTreeID(); if (verifyID.HasError) { return(verifyID); } for (int i = 0; i < m_Groups.Count; i++) { BehaviorGroupDesigner group = m_Groups[i]; if (group == null) { continue; } for (int j = 0; j < group.BehaviorTrees.Count; j++) { BehaviorTreeDesigner behaviorTree = group.BehaviorTrees[j]; if (behaviorTree != null) { VerifyInfo verifyBehaviorTree = behaviorTree.VerifyBehaviorTree(); if (verifyBehaviorTree.HasError) { return(verifyBehaviorTree); } } } } for (int i = 0; i < m_BehaviorTrees.Count; i++) { BehaviorTreeDesigner behaviorTree = m_BehaviorTrees[i]; if (behaviorTree != null) { VerifyInfo verifyBehaviorTree = behaviorTree.VerifyBehaviorTree(); if (verifyBehaviorTree.HasError) { return(verifyBehaviorTree); } } } return(VerifyInfo.DefaultVerifyInfo); }
private void enterBTN_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(textBox1.Text.Trim())) { MainForm.Instance.ShowMessage("BehaviorTreeID不能为空"); MainForm.Instance.ShowInfo("BehaviorTreeID不能为空"); return; } string behaviorTreeId = textBox1.Text.Trim(); string behaviorName = textBox3.Text.Trim(); if (m_BehaviorTree.ID != behaviorTreeId) { if (MainForm.Instance.BehaviorTreeData.ExistBehaviorTree(behaviorTreeId)) { MainForm.Instance.ShowMessage(string.Format("已存在BehaviorTreeID:{0}", behaviorTreeId)); MainForm.Instance.ShowInfo(string.Format("已存在BehaviorTreeID:{0}", behaviorTreeId)); return; } } m_EditBehaviorTree.ID = behaviorTreeId; m_EditBehaviorTree.Describe = textBox2.Text.Trim(); m_EditBehaviorTree.Name = textBox3.Text.Trim(); //检验行为树是否合法 VerifyInfo verifyBehaviorTree = m_EditBehaviorTree.VerifyBehaviorTree(); if (verifyBehaviorTree.HasError) { MainForm.Instance.ShowMessage(verifyBehaviorTree.Msg); return; } string editContent = XmlUtility.ObjectToString(m_EditBehaviorTree); if (editContent != m_BehaviorTreeContent) { m_BehaviorTree.UpdateBehaviorTree(m_EditBehaviorTree); MainForm.Instance.ShowInfo(string.Format("更新行为树:{0}成功 时间:{1}", m_EditBehaviorTree.ID, DateTime.Now)); } MainForm.Instance.Exec(OperationType.UpdateBehaviorTree, m_BehaviorTree); this.Close(); }
/// <summary> /// 校验行为树数据 /// </summary> /// <returns></returns> public VerifyInfo VerifyBehaviorTree() { VerifyInfo verifyID = VerifyBehaviorTreeID(); if (verifyID.HasError) { return(verifyID); } for (int i = 0; i < m_BehaviorTrees.Count; i++) { BehaviorTreeDesigner behaviorTree = m_BehaviorTrees[i]; if (behaviorTree != null) { VerifyInfo verifyBehaviorTree = behaviorTree.VerifyBehaviorTree(); if (verifyBehaviorTree.HasError) { return(verifyBehaviorTree); } } } return(VerifyInfo.DefaultVerifyInfo); }