示例#1
0
        private System.Collections.Generic.IEnumerator <float> InnerRunOperation(System.Collections.Generic.IEnumerator <float> coroutine)
        {
            yield return(MEC.Timing.WaitUntilDone(MEC.Timing.RunCoroutine(coroutine)));

            CurrentState = AsyncTimingOperationLoadingState.Completed;
            OnCompleted?.Invoke();
        }
示例#2
0
 public AsyncTimingOperation Run()
 {
     if (CurrentState == AsyncTimingOperationLoadingState.Running)
     {
         throw new AsyncTimingException(this, "Coroutine is alreay running");
     }
     CurrentState = AsyncTimingOperationLoadingState.Running;
     MEC.Timing.RunCoroutine(InnerRunOperation(coroutine));
     return(this);
 }
示例#3
0
 public AsyncTimingOperation()
 {
     CurrentState = AsyncTimingOperationLoadingState.Failed;
 }
示例#4
0
 public AsyncTimingOperation(System.Collections.Generic.IEnumerator <float> coroutine)
 {
     CurrentState   = AsyncTimingOperationLoadingState.Initialized;
     this.coroutine = coroutine;
 }
示例#5
0
 public AsyncTimingException(IAsyncTiming timingOperation, string message) : base(message)
 {
     TimingOperation           = timingOperation;
     StateWhenExceptionWasThow = timingOperation.CurrentState;
 }