示例#1
0
        /// <summary>
        /// 单线程异步委托
        /// </summary>
        /// <param name="waitTime">等待时间,这里是ms</param>
        /// <param name="callback">回调</param>
        public void WaitTimeAsyncCallback(int waitTime, Action callback)
        {
            var             dispatchTime = Utility.Time.MillisecondNow() + waitTime;
            CoroutineStruct corou        = new CoroutineStruct(dispatchTime, callback);

            corouSet.Add(corou);
        }
示例#2
0
        /// <summary>
        /// Start a code coroutine process
        /// </summary>
        /// <param name="itorFunc"></param>
        public bool StartProcess(IEnumerator itorFunc)
        {
            CoroutineStruct value;

            if (mCoroutineDict.TryGetValue(itorFunc, out value))
            {
                Debug.LogWarningFormat("<color=magenta>[CodeRunner]Process {0} has already started. Need to stop before restart.</color>", itorFunc);
                StopCoroutine(value.coroutine);
            }

            Debug.LogFormat("<color=green>[CodeRunner]Start process {0}.</color>", itorFunc);

            value = new CoroutineStruct(StartCoroutine(SimulateCoroutine(itorFunc)), false);
            mCoroutineDict[itorFunc] = value;
            return(true);
        }
示例#3
0
        /// <summary>
        /// Resume a code coroutine process
        /// </summary>
        /// <param name="itorFunc"></param>
        /// <returns></returns>
        public bool ResumeProcess(IEnumerator itorFunc)
        {
            if (!mCoroutineDict.ContainsKey(itorFunc))
            {
                Debug.LogWarningFormat("<color=magenta>[CodeRunner]Resume process {0}, but it was not started.</color>", itorFunc);
                return(false);
            }

            Debug.LogFormat("<color=green>[CodeRunner]Resume process {0}.</color>", itorFunc);

            CoroutineStruct value = mCoroutineDict[itorFunc];

            value.paused             = false;
            mCoroutineDict[itorFunc] = value;
            return(true);
        }