Exemple #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="routine"></param>
 public void StopCoroutine(IEnumerator routine)
 {
     for (int i = 0; i < coroutineList.Count; ++i)
     {
         CoroutineObject co = coroutineList[i];
         if (co.Enumerator.Equals(routine))
         {
             co.Destroy();
             coroutineList.RemoveAt(i);
             break;
         }
     }
 }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="routine"></param>
        public virtual void StartCoroutine(IEnumerator routine, Runnable endCallBack)
        {
            foreach (CoroutineObject co in coroutineList)
            {
                if (co.Enumerator.Equals(routine))
                {
                    return;
                }
            }

            CoroutineObject ro = CreateCoroutineObject();

            ro.enumer      = routine;
            ro.endCallBack = endCallBack;
            coroutineList.Add(ro);
        }
Exemple #3
0
 /// <summary>
 ///
 /// </summary>
 public void OnUpdate()
 {
     if (coroutineList.Count <= 0)
     {
         return;
     }
     for (int i = 0; i < coroutineList.Count; ++i)
     {
         CoroutineObject enumer = coroutineList[i];
         enumer._MoveNext();
         if (enumer.IsDestroy && enumer.Enumerator != null)
         {
             if (enumer.EndCallBack != null)
             {
                 enumer.EndCallBack();
             }
             coroutineList.RemoveAt(i);
             --i;
             continue;
         }
     }
 }