示例#1
0
 private void DepositWarehouse(CoroutineEnumerator enumerator)
 {
     if (!Warehouse.ContainsKey(enumerator.TargetAction))
     {
         Warehouse.Add(enumerator.TargetAction, new List <CoroutineEnumerator>());
     }
     Warehouse[enumerator.TargetAction].Add(enumerator);
 }
示例#2
0
        /// <summary>
        /// 运行协程
        /// </summary>
        /// <typeparam name="T1">协程方法的参数类型</typeparam>
        /// <typeparam name="T2">协程方法的参数类型</typeparam>
        /// <param name="action">协程方法</param>
        /// <param name="arg1">协程方法的参数</param>
        /// <param name="arg2">协程方法的参数</param>
        /// <returns>协程迭代器ID</returns>
        public string Run <T1, T2>(CoroutineAction <T1, T2> action, T1 arg1, T2 arg2)
        {
            CoroutineEnumerator coroutineEnumerator = Main.m_ReferencePool.Spawn <CoroutineEnumerator>().Fill(action, new object[] { arg1, arg2 });

            coroutineEnumerator.Run();
            CoroutineEnumerators.Add(coroutineEnumerator.ID, coroutineEnumerator);
            DepositWarehouse(coroutineEnumerator);
            return(coroutineEnumerator.ID);
        }
示例#3
0
        /// <summary>
        /// 运行协程
        /// </summary>
        /// <param name="action">协程方法</param>
        /// <returns>协程迭代器ID</returns>
        public string Run(CoroutineAction action)
        {
            CoroutineEnumerator coroutineEnumerator = Main.m_ReferencePool.Spawn <CoroutineEnumerator>().Fill(action, null);

            coroutineEnumerator.Run();
            CoroutineEnumerators.Add(coroutineEnumerator.ID, coroutineEnumerator);
            DepositWarehouse(coroutineEnumerator);
            return(coroutineEnumerator.ID);
        }
示例#4
0
 private void RemoveWarehouse(CoroutineEnumerator enumerator)
 {
     if (Warehouse.ContainsKey(enumerator.TargetAction))
     {
         Warehouse[enumerator.TargetAction].Remove(enumerator);
         if (Warehouse[enumerator.TargetAction].Count <= 0)
         {
             Warehouse.Remove(enumerator.TargetAction);
         }
     }
 }
示例#5
0
 void SelectedIEnumerator(CoroutineEnumerator ie)
 {
     mCurEnumerator = ie;
     traceInfo      = ie.id + "\r\n\r\n" + GetTraceInfo();
     Repaint();
 }