Ejemplo n.º 1
0
 /// <summary>
 /// 等待知道
 /// </summary>
 public static float WaitUntil(Func <bool> condition)
 {
     // E_CoroutineType.update
     lock (lock_object)
         ReplaceCoroutine = ReCoroutineManager.AddCoroutine(GetReplaceCoroutine(condition));
     return(float.NaN);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 获取执行携程
 /// </summary>
 public ReCoroutine GetCoroutine()
 {
     if (IsRunning)
     {
         return(ReCoroutineManager.AddCoroutine(WaitForFinish()));
     }
     return(ReCoroutineManager.AddCoroutine(Run()));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 开始执行流程
 /// </summary>
 public void Start()
 {
     //应用属性
     for (int i = 0; i < _propertys.Count; i++)
     {
         _propertys.GetValueAt(i).Apply(this);
     }
     ReCoroutineManager.AddCoroutine(Run());
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 等待异步操作
 /// </summary>
 public static float WaitAsynOperation(AsyncOperation operation)
 {
     lock (lock_object)
     {
         // E_CoroutineType.update
         ReplaceCoroutine = ReCoroutineManager.AddCoroutine(GetReplaceCoroutine(() => operation.isDone));
     }
     return(float.NaN);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 等待www返回
 /// </summary>
 public static float WaitWww(WWW www)
 {
     lock (lock_object)
     {
         //  E_CoroutineType.update
         ReplaceCoroutine = ReCoroutineManager.AddCoroutine(GetReplaceCoroutine(() => www.isDone));
     }
     return(float.NaN);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 等待所有其他携程
 /// </summary>
 public static float WaitForAllCoroutines(params ReCoroutine[] coroutines)
 {
     // E_CoroutineType.update
     lock (lock_object)
         ReplaceCoroutine = ReCoroutineManager.AddCoroutine(
             GetReplaceCoroutine(() =>
         {
             int length = coroutines.Length;
             for (int i = 0; i < length; i++)
             {
                 if (!coroutines[i].IsDone)
                 {
                     return(false);
                 }
             }
             return(true);
         }));
     return(float.NaN);
 }
Ejemplo n.º 7
0
 public void Start()
 {
     Running    = true;
     IsFinished = false;
     ReCoroutineManager.AddCoroutine(_do_task());
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 等待其他协程
 /// </summary>
 public static float Wait(IEnumerator <float> e)
 {
     lock (lock_object)
         ReplaceCoroutine = ReCoroutineManager.AddCoroutine(e);
     return(float.NaN);
 }