Beispiel #1
0
 public static Run OnDelegate(SimpleEvent aDelegate, System.Action aAction)
 {
     var tmp = new Run();
     tmp.action = _RunOnDelegate(tmp, aDelegate, aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #2
0
 public static Run Every(float aInitialDelay, float aDelay, System.Action aAction)
 {
     var tmp = new Run();
     tmp.action = _RunEvery(tmp, aInitialDelay, aDelay, aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #3
0
 public static Run Lerp(float aDuration, System.Action<float> aAction)
 {
     var tmp = new Run();
     tmp.action = _RunLerp(tmp, aDuration, aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #4
0
 public static Run Coroutine(IEnumerator aCoroutine)
 {
     var tmp = new Run();
     tmp.action = _Coroutine(tmp, aCoroutine);
     tmp.Start();
     return tmp;
 }
Beispiel #5
0
 public static Run EachFrame(System.Action aAction)
 {
     var tmp = new Run();
     tmp.action = _RunEachFrame(tmp, aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #6
0
 public static Run After(float aDelay, System.Action aAction)
 {
     var tmp = new Run();
     tmp.action = _RunAfter(tmp, aDelay, aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #7
0
 public static Run OnGUI(float aDuration, System.Action aAction)
 {
     var tmp = new Run();
     tmp.onGUIaction = aAction;
     if (aDuration > 0.0f)
         tmp.action = _RunAfter(tmp, aDuration, null);
     else
         tmp.action = null;
     tmp.Start();
     CoroutineHelper.Instance.Add(tmp);
     return tmp;
 }
Beispiel #8
0
 public Run ExecuteWhenDone(System.Action aAction)
 {
     var tmp = new Run();
     tmp.action = _WaitFor(aAction);
     tmp.Start();
     return tmp;
 }
Beispiel #9
0
 private static IEnumerator _RunOnDelegate(Run aRun, SimpleEvent aDelegate, System.Action aAction)
 {
     aRun.isDone = false;
     System.Action action = () => {
         aAction();
     };
     aDelegate.Add(action);
     while (!aRun.abort && aAction != null) {
         yield return null;
     }
     aDelegate.Remove(action);
     aRun.isDone = true;
 }
Beispiel #10
0
 private static IEnumerator _RunLerp(Run aRun, float aDuration, System.Action<float> aAction)
 {
     aRun.isDone = false;
     float t = 0f;
     while (t < 1.0f) {
         t = Mathf.Clamp01(t + Time.deltaTime / aDuration);
         if (!aRun.abort && aAction != null)
             aAction(t);
         yield return null;
     }
     aRun.isDone = true;
 }
Beispiel #11
0
 private static IEnumerator _RunEvery(Run aRun, float aInitialDelay, float aSeconds, System.Action aAction)
 {
     aRun.isDone = false;
     if (aInitialDelay > 0f)
         yield return new WaitForSeconds(aInitialDelay);
     else {
         int FrameCount = Mathf.RoundToInt(-aInitialDelay);
         for (int i = 0; i < FrameCount; i++)
             yield return null;
     }
     while (true) {
         if (!aRun.abort && aAction != null)
             aAction();
         else
             break;
         if (aSeconds > 0)
             yield return new WaitForSeconds(aSeconds);
         else {
             int FrameCount = Mathf.Max(1, Mathf.RoundToInt(-aSeconds));
             for (int i = 0; i < FrameCount; i++)
                 yield return null;
         }
     }
     aRun.isDone = true;
 }
Beispiel #12
0
 private static IEnumerator _RunEachFrame(Run aRun, System.Action aAction)
 {
     aRun.isDone = false;
     while (true) {
         if (!aRun.abort && aAction != null)
             aAction();
         else
             break;
         yield return null;
     }
     aRun.isDone = true;
 }
Beispiel #13
0
 private static IEnumerator _RunAfter(Run aRun, float aDelay, System.Action aAction)
 {
     aRun.isDone = false;
     yield return new WaitForSeconds(aDelay);
     if (!aRun.abort && aAction != null)
         aAction();
     aRun.isDone = true;
 }
Beispiel #14
0
 private static IEnumerator _Coroutine(Run aRun, IEnumerator aCoroutine)
 {
     yield return CoroutineHelper.Instance.StartCoroutine(aCoroutine);
     aRun.isDone = true;
 }