protected virtual ITask GetTask(string taskID)
        {
            //在场景信息里查找指定任务
            ST_TaskData taskData;

            if (taskSceneData.listTaskData != null)
            {
                taskData = taskSceneData.listTaskData.Find((data) => data.strID == taskID);
            }
            else
            {
                taskData = default(ST_TaskData);
            }

            //如果没数据,taskData默认值的taskType=null
            ITask task = TaskFactoy.CreateTaskByTypeName(taskData.strTaskTypeName);

            if (task == null)
            {
                return(null);
            }

            //处理task的初始化数据
            task.Init(GetTaskInitHashTable(taskData.arrArgumentData));

            return(task);
        }
Beispiel #2
0
 public static bool Execute(ST_TaskSceneData sceneData, Action callback, out ITaskExecutor executor)
 {
     executor = TaskFactoy.CreateTaskExecutorByTypeName(sceneData.strExecutorTypyName);
     if (executor == null)
     {
         callback?.Invoke();
         return(false);
     }
     executor.Executor(sceneData, callback);
     return(true);
 }
Beispiel #3
0
        public static ITaskExecutor Execute(ST_TaskSceneData sceneData, Action callback)
        {
            ITaskExecutor executor = TaskFactoy.CreateTaskExecutorByTypeName(sceneData.strExecutorTypyName);

            if (executor == null)
            {
                callback?.Invoke();
                return(null);
            }
            executor.Executor(sceneData, callback);
            return(executor);
        }