コード例 #1
0
ファイル: Workspace.cs プロジェクト: TonyDongGuaPi/joework
        public static BehaviorTreeTask CreateBehaviorTreeTask(string relativePath)
        {
            BehaviorTree behaviorTree = null;

            if (Workspace.BehaviorTrees.ContainsKey(relativePath))
            {
                behaviorTree = Workspace.BehaviorTrees.get_Item(relativePath);
            }
            else
            {
                bool flag = Workspace.Load(relativePath);
                if (flag)
                {
                    behaviorTree = Workspace.BehaviorTrees.get_Item(relativePath);
                }
            }
            if (behaviorTree != null)
            {
                BehaviorTask     behaviorTask     = behaviorTree.CreateAndInitTask();
                BehaviorTreeTask behaviorTreeTask = behaviorTask as BehaviorTreeTask;
                if (!Workspace.ms_allBehaviorTreeTasks.ContainsKey(relativePath))
                {
                    Workspace.ms_allBehaviorTreeTasks.set_Item(relativePath, new Workspace.BTItem_t());
                }
                Workspace.BTItem_t bTItem_t = Workspace.ms_allBehaviorTreeTasks.get_Item(relativePath);
                if (!bTItem_t.bts.Contains(behaviorTreeTask))
                {
                    bTItem_t.bts.Add(behaviorTreeTask);
                }
                return(behaviorTreeTask);
            }
            return(null);
        }
コード例 #2
0
ファイル: Workspace.cs プロジェクト: TonyDongGuaPi/joework
 public static void DestroyBehaviorTreeTask(BehaviorTreeTask behaviorTreeTask, Agent agent)
 {
     if (behaviorTreeTask != null)
     {
         if (Workspace.ms_allBehaviorTreeTasks.ContainsKey(behaviorTreeTask.GetName()))
         {
             Workspace.BTItem_t bTItem_t = Workspace.ms_allBehaviorTreeTasks.get_Item(behaviorTreeTask.GetName());
             bTItem_t.bts.Remove(behaviorTreeTask);
             if (agent != null)
             {
                 bTItem_t.agents.Remove(agent);
             }
         }
         BehaviorTask.DestroyTask(behaviorTreeTask);
     }
 }
コード例 #3
0
ファイル: Workspace.cs プロジェクト: TonyDongGuaPi/joework
 public static void RecordBTAgentMapping(string relativePath, Agent agent)
 {
     if (Workspace.ms_allBehaviorTreeTasks == null)
     {
         Workspace.ms_allBehaviorTreeTasks = new DictionaryView <string, Workspace.BTItem_t>();
     }
     if (!Workspace.ms_allBehaviorTreeTasks.ContainsKey(relativePath))
     {
         Workspace.ms_allBehaviorTreeTasks.set_Item(relativePath, new Workspace.BTItem_t());
     }
     Workspace.BTItem_t bTItem_t = Workspace.ms_allBehaviorTreeTasks.get_Item(relativePath);
     if (bTItem_t.agents.IndexOf(agent) == -1)
     {
         bTItem_t.agents.Add(agent);
     }
 }