コード例 #1
0
 protected override IEnumerable <BEHAVIOR_STATUS> Execute()
 {
     switch (g_Status)
     {
     case BEHAVIOR_STATUS.STARTED:
         if (g_NPCAssertion != null)
         {
             g_Assertion = g_NPCAssertion.Evaluate;
         }
         bool result = g_Assertion.Invoke();
         if (result)
         {
             if (g_NPCAssertion != null && g_NPCAssertion.SetResultInBlackboard && Blackboard != null)
             {
                 if (Blackboard.HasParameter(g_NPCAssertion.BlackboardValue))
                 {
                     if (!Blackboard.AddValue(g_NPCAssertion.BlackboardValue, g_NPCAssertion.Result))
                     {
                         Debug.Log("Failed to add NPCAssertion result int NPCBlackboard");
                     }
                 }
             }
             g_Status = BEHAVIOR_STATUS.SUCCESS;
         }
         else
         {
             g_Status = BEHAVIOR_STATUS.FAILURE;
         }
         break;
     }
     yield return(g_Status);
 }