예제 #1
0
파일: Agent.cs 프로젝트: isoundy000/wzry-1
        public bool btload(State_t state)
        {
            state.Vars.CopyTo(this, this.m_variables);
            if (state.BT == null)
            {
                return(false);
            }
            if (this.m_currentBT != null)
            {
                for (int i = 0; i < this.m_behaviorTreeTasks.Count; i++)
                {
                    BehaviorTreeTask behaviorTreeTask = this.m_behaviorTreeTasks[i];
                    if (behaviorTreeTask == this.m_currentBT)
                    {
                        Workspace.DestroyBehaviorTreeTask(behaviorTreeTask, this);
                        this.m_behaviorTreeTasks.Remove(behaviorTreeTask);
                        break;
                    }
                }
            }
            BehaviorNode node = state.BT.GetNode();

            this.m_currentBT = (BehaviorTreeTask)node.CreateAndInitTask();
            state.BT.CopyTo(this.m_currentBT);
            return(true);
        }
예제 #2
0
파일: Agent.cs 프로젝트: isoundy000/wzry-1
 public bool btsave(State_t state)
 {
     this.m_variables.CopyTo(null, state.Vars);
     if (this.m_currentBT != null)
     {
         Workspace.DestroyBehaviorTreeTask(state.BT, this);
         BehaviorNode node = this.m_currentBT.GetNode();
         state.BT = (BehaviorTreeTask)node.CreateAndInitTask();
         this.m_currentBT.CopyTo(state.BT);
         return(true);
     }
     return(false);
 }