public bool Close()
 {
     if (null != this._pTasks)
     {
         for (int i = 0; i < this._pTasks.taskNum; i++)
         {
             DebugUtils.dbgAssert(null != this._pTasks.tasks);
             if (!(null == this._pTasks.tasks[i]))
             {
                 if (this == this._pTasks.tasks[i]._pTaskParent && !this._pTasks.tasks[i].Close())
                 {
                     return(false);
                 }
             }
         }
     }
     this._iState = SceneTaskMono.TaskState.TaskState_UnInit;
     if (!this.UnInit())
     {
         return(false);
     }
     if (null != this._pTasks)
     {
         DebugUtils.dbgAssert(null != this._pTasks.tasks);
         DebugUtils.dbgAssert(this._nTask >= 0 && this._nTask < this._pTasks.taskNum);
         this._pTasks.tasks[this._nTask] = null;
     }
     this._pTasks      = null;
     this._nTask       = -1;
     this._pTaskParent = null;
     this._isDraw      = false;
     this._iState      = SceneTaskMono.TaskState.TaskState_ST;
     return(true);
 }
    public bool Running()
    {
        switch (this._iState)
        {
        case SceneTaskMono.TaskState.TaskState_Init:
            this.Active();
            if (this.Init())
            {
                this._isDraw = true;
                this._iState = SceneTaskMono.TaskState.TaskState_Update;
            }
            break;

        case SceneTaskMono.TaskState.TaskState_Update:
            if (!this.Run())
            {
                this._iState = SceneTaskMono.TaskState.TaskState_UnInit;
            }
            break;

        case SceneTaskMono.TaskState.TaskState_UnInit:
            if (!this.Close())
            {
            }
            break;
        }
        return(this.isRun);
    }
 protected virtual void Awake()
 {
     this._pTasks      = null;
     this._nTask       = -1;
     this._pTaskParent = null;
     this._iState      = SceneTaskMono.TaskState.TaskState_ST;
     this._isDraw      = false;
     this._isActive    = false;
 }
 public bool Open(SceneTasksMono pTasks, int iTask, SceneTaskMono pTaskParent)
 {
     this._pTasks = pTasks;
     if (null != pTasks)
     {
         pTasks.tasks[iTask] = this;
     }
     this._nTask       = iTask;
     this._pTaskParent = pTaskParent;
     this._isDraw      = false;
     this._iState      = SceneTaskMono.TaskState.TaskState_Init;
     return(true);
 }
 protected void InitState()
 {
     this._iState = SceneTaskMono.TaskState.TaskState_Init;
 }