public void test_selector_loop_5() { testAgent.btsetcurrent("node_test/selector_loop_ut_5"); testAgent.resetProperties(); testAgent.btexec(); behaviac.EBTStatus s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, s); Assert.AreEqual(1, testAgent.testVar_0); }
public void test_predicate_sequence_0() { testAgent.btsetcurrent("node_test/predicate_sequence_ut_0"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_FAILURE, status); Assert.AreEqual(0, testAgent.testVar_1); Assert.AreEqual(0, testAgent.testVar_0); }
public void test_predicate_action_1() { testAgent.btsetcurrent("node_test/predicate_action_ut_1"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(0, testAgent.testVar_0); Assert.AreEqual(0, testAgent.testVar_1); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); }
public void test_decoration_log_0() { testAgent.btsetcurrent("node_test/decoration_log_ut_0"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); Assert.AreEqual(0, testAgent.testVar_0); Assert.AreEqual(1, testAgent.testVar_1); Assert.AreEqual(0.0f, testAgent.testVar_2); }
public void test_predicate_selector_3() { testAgent.btsetcurrent("node_test/predicate_selector_ut_3"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_FAILURE, status); Assert.AreEqual(0, testAgent.testVar_0); Assert.AreEqual(-1, testAgent.testVar_1); Assert.AreEqual(-1.0f, testAgent.testVar_2); }
protected override EBTStatus update_impl(behaviac.Agent pAgent, behaviac.EBTStatus childStatus) { behaviac.Agent pAgent_opl = behaviac.Utils.GetParentAgent(pAgent, "SecondAgentInstance"); int opl = (int)AgentMetaVisitor.GetProperty(pAgent_opl, "p2"); behaviac.Agent pAgent_opr = (SecondAgent)AgentMetaVisitor.GetProperty(pAgent, "pInstance"); int opr = (int)AgentMetaVisitor.GetProperty(pAgent_opr, "p2"); bool op = opl > opr; return(op ? EBTStatus.BT_SUCCESS : EBTStatus.BT_FAILURE); }
void Update() { if (_status == behaviac.EBTStatus.BT_RUNNING) { behaviac.Debug.LogWarning("Update"); behaviac.Workspace.Instance.FrameSinceStartup = behaviac.Workspace.Instance.FrameSinceStartup + 1; _status = this.btexec(); // FireEvent("event_task", 2); // behaviac.Workspace.Instance.DebugUpdate(); } }
/// <summary> /// 驱动AI的协程 /// </summary> /// <returns></returns> protected IEnumerator drive() { while (true) { if (_get_LifeStatus() != behaviac.EBTStatus.BT_FAILURE && _status == behaviac.EBTStatus.BT_RUNNING) { _status = this.btexec(); } yield return(CoroutineObjs.waitForMiliSeconds_1000); } }
protected override EBTStatus update_impl(behaviac.Agent pAgent, behaviac.EBTStatus childStatus) { EBTStatus result = EBTStatus.BT_SUCCESS; int opl = ((FSM_Ctrl)pAgent).Status; int opr2 = 2; bool op = (opl == opr2); if (!op) { result = EBTStatus.BT_FAILURE; } return(result); }
public void test_decoration_successuntil_0() { testAgent.btsetcurrent("node_test/decoration_successuntil_ut_0"); testAgent.resetProperties(); int loopCount = 0; while (loopCount < 1000) { behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); ++loopCount; } }
protected override EBTStatus update_impl(behaviac.Agent pAgent, behaviac.EBTStatus childStatus) { EBTStatus result = EBTStatus.BT_SUCCESS; bool opl = ((Unit)pAgent).isEnmyFound; bool opr2 = true; bool op = (opl == opr2); if (!op) { result = EBTStatus.BT_FAILURE; } return(result); }
public void custom_property_reset() { testAgent.btsetcurrent("par_test/custom_property_reset"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(10, testAgent.testVar_1); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(20, testAgent.testVar_1); }
static void UpdateLoop() { Loger.Log("UpdateLoop"); int frames = 0; while (status == behaviac.EBTStatus.BT_RUNNING) { Loger.LogFormat("frame: {0}", ++frames); status = firstAgent.btexec(); Thread.Sleep(3000); } }
public void test_event_0() { testAgent.btsetcurrent("node_test/event_ut_0"); testAgent.resetProperties(); testAgent.FireEvent("event_test_void"); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.FireEvent("event_test_void"); Assert.AreEqual(true, testAgent.event_test_var_bool); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.resetProperties(); testAgent.FireEvent("event_test_int", 13); Assert.AreEqual(13, testAgent.event_test_var_int); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.resetProperties(); testAgent.FireEvent("event_test_int_bool", 15, true); Assert.AreEqual(true, testAgent.event_test_var_bool); Assert.AreEqual(15, testAgent.event_test_var_int); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.resetProperties(); testAgent.FireEvent("event_test_int_bool_float", 15, true, 27.3f); Assert.AreEqual(true, testAgent.event_test_var_bool); Assert.AreEqual(15, testAgent.event_test_var_int); Assert.AreEqual(27.3f, testAgent.event_test_var_float); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.resetProperties(); testAgent.testVar_0 = 0; status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(0, testAgent.testVar_1); testAgent.FireEvent("event_test_int_bool_float", 19, true, 11.9f); Assert.AreEqual(false, testAgent.event_test_var_bool); Assert.AreEqual(-1, testAgent.event_test_var_int); Assert.AreEqual(-1.0f, testAgent.event_test_var_float); }
public void test_predicate_action_3() { testAgent.btsetcurrent("node_test/predicate_action_ut_3"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(0, testAgent.testVar_0); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); status = testAgent.btexec(); Assert.AreEqual(0, testAgent.testVar_0); Assert.AreEqual(behaviac.EBTStatus.BT_FAILURE, status); }
public void test_wait_1() { behaviac.Workspace.Instance.DoubleValueSinceStartup = 0; testAgent.btsetcurrent("node_test/wait_ut_1"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); Assert.AreEqual(1, testAgent.testVar_0); behaviac.Workspace.Instance.DoubleValueSinceStartup = 1001 * 1000; status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(2, testAgent.testVar_0); }
public void test_event_1() { testAgent.btsetcurrent("node_test/event_ut_1"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.FireEvent("event_test_int", 13); Assert.AreEqual(13, testAgent.event_test_var_int); status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); }
public void node_test_selector_ut_5() { testAgent.btsetcurrent("node_test/selector_ut_5"); testAgent.resetProperties(); testAgent.testColor = EnumTest.EnumTest_One; behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(0, testAgent.testVar_0); testAgent.testColor = EnumTest.EnumTest_OneAfterOne; status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); Assert.AreEqual(1, testAgent.testVar_0); }
public void test_action_waitforsignal_2() { testAgent.btsetcurrent("node_test/action_ut_waitforsignal_2"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(-1.0f, testAgent.testVar_2); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testAgent.resetProperties(); testAgent.testVar_2 = 0.0f; status = testAgent.btexec(); Assert.AreEqual(2.3f, testAgent.testVar_2); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); }
static void UpdateLoop() { Loger.Log("UpdateLoop"); int frames = 0; behaviac.EBTStatus status = behaviac.EBTStatus.BT_RUNNING; while (status == behaviac.EBTStatus.BT_RUNNING) { Loger.LogFormat("frame: {0}", ++frames); behaviac.Workspace.Instance.DebugUpdate(); status = firstAgent.btexec(); } }
static void UpdateLoop() { Console.WriteLine("UpdateLoop"); int frames = 0; behaviac.EBTStatus status = behaviac.EBTStatus.BT_RUNNING; while (status == behaviac.EBTStatus.BT_RUNNING) { Console.WriteLine("frame {0}", ++frames); status = g_FirstAgent.btexec(); } }
public void Tick() { foreach (FreeAIComponent component in _interestComponents) { if (null != component.Agent) { behaviac.EBTStatus status = behaviac.EBTStatus.BT_RUNNING; while (status == behaviac.EBTStatus.BT_RUNNING) { status = component.Agent.btexec(); } } } }
public behaviac.EBTStatus moveForward() { if (startNewStep) { newMoveTarget = transform.localPosition + moveStepDistance * transform.forward; startNewStep = false; } behaviac.EBTStatus btStatus = moveAGrid(newMoveTarget); if (btStatus != behaviac.EBTStatus.BT_RUNNING) { startNewStep = true; } return(btStatus); }
static void UpdateLoop() { Console.WriteLine("UpdateLoop"); behaviac.Workspace.Instance.FrameSinceStartup = 0; behaviac.EBTStatus status = behaviac.EBTStatus.BT_RUNNING; while (status == behaviac.EBTStatus.BT_RUNNING) { behaviac.Workspace.Instance.FrameSinceStartup++; Console.WriteLine("frame {0}", behaviac.Workspace.Instance.FrameSinceStartup); status = g_FirstAgent.btexec(); } }
public override void OnSyncedUpdate() { if (_status == behaviac.EBTStatus.BT_RUNNING) { if (ShowLog) { Debug.LogWarning("Update==============================================="); } _status = this.btexec(); } AllTSTransform.OnUpdate(); RotateTSTransform.OnUpdate(); if (mActorAttr.IsDeath) { TrueSyncManager.SyncedDestroy(gameObject); } }
public void test_event_2() { testChild.resetProperties(); const string treePath = "node_test/event_ut_2"; testChild.btload(treePath); testChild.btsetcurrent(treePath); behaviac.EBTStatus status = testChild.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); testChild.FireEvent("event_test_int_bool", 15, true); Assert.AreEqual(true, testChild.event_test_var_bool); Assert.AreEqual(15, testChild.event_test_var_int); status = testChild.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); }
public void test_decoration_successuntil_1() { testAgent.btsetcurrent("node_test/decoration_successuntil_ut_1"); testAgent.resetProperties(); int loopCount = 0; while (loopCount < 5) { behaviac.EBTStatus status = testAgent.btexec(); if (loopCount < 4) { Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); } else { Assert.AreEqual(behaviac.EBTStatus.BT_FAILURE, status); } ++loopCount; } }
// Update is called once per frame void Update() { if (!CoreEntry.GameStart) { return; } //执行行为树 if (m_btLoadResult) { behaviac.EBTStatus ret = btexec(); if (ret != behaviac.EBTStatus.BT_RUNNING) { //结束了 btunload(m_behaviorTree); m_btLoadResult = false; } } }
public void test_selector_loop_6() { testAgent.btsetcurrent("node_test/selector_loop_ut_6"); testAgent.resetProperties(); testAgent.m_bCanSee = false; const int kCount = 5; for (int i = 0; i < kCount; ++i) { behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); Assert.AreEqual(2, testAgent.testVar_0); } testAgent.m_bCanSee = true; behaviac.EBTStatus s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, s); Assert.AreEqual(1, testAgent.testVar_0); s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, s); Assert.AreEqual(1, testAgent.testVar_0); testAgent.m_bCanSee = false; s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, s); Assert.AreEqual(2, testAgent.testVar_0); s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, s); Assert.AreEqual(2, testAgent.testVar_0); testAgent.m_bCanSee = true; s = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, s); Assert.AreEqual(1, testAgent.testVar_0); }
public void local_out_scope() { testAgent.btsetcurrent("par_test/local_out_scope"); testAgent.resetProperties(); behaviac.EBTStatus status = testAgent.btexec(); Assert.AreEqual(behaviac.EBTStatus.BT_RUNNING, status); bool c_Bool = testAgent.GetVariable <bool>("c_Bool"); Assert.AreEqual(true, c_Bool); List <int> intArray = testAgent.GetVariable <List <int> >("c_IntArray") as List <int>; Assert.AreEqual(2, intArray.Count); Assert.AreEqual(1, intArray[0]); Assert.AreEqual(2, intArray[1]); string c_StaticString = testAgent.GetVariable <string>("c_StaticString"); Assert.AreEqual("test string", c_StaticString); TNS.NE.NAT.eColor color = testAgent.GetVariable <TNS.NE.NAT.eColor>("c_Enum"); Assert.AreEqual(TNS.NE.NAT.eColor.GREEN, color); //l_Int defined as local in custom_property_as_left_value_and_param, not defined in local_out_scope object l_Int = testAgent.GetVariable <object>("l_Int"); Assert.AreEqual(null, l_Int); List <int> l_IntArray = testAgent.GetVariable <List <int> >("l_IntArray"); Assert.AreEqual(2, l_IntArray.Count); Assert.AreEqual(2, l_IntArray[0]); Assert.AreEqual(3, l_IntArray[1]); status = testAgent.btexec(); //bt succeeded, so the l_IntArray is out of scope Assert.AreEqual(behaviac.EBTStatus.BT_SUCCESS, status); l_IntArray = testAgent.GetVariable <List <int> >("l_IntArray"); Assert.AreEqual(null, l_IntArray); }