예제 #1
0
        private IEnumerator <float> _do_task()
        {
            IEnumerator <float> e = _ienumer;

            while (Running)
            {
                if (BindObject.Equals(null))
                {
                    LogManager.Error("协程中断,因为绑定物体被删除所以停止协程");
                    Stop();
                    yield break;
                }

                if (Paused)
                {
                    yield return(0);
                }
                else
                {
                    if (e != null && e.MoveNext())
                    {
                        yield return(e.Current);
                    }
                    else
                    {
                        Running    = false;
                        IsFinished = true;
                        _internal_call_back(true);
                    }
                }
            }
        }
예제 #2
0
        public IEnumerator _do_task()
        {
            IEnumerator e = _ienumer;

            while (Running)
            {
                // 安全性检测 性能GameObject待定
                if (BindObject.Equals(null))
                {
                    LogManager.Error("协程中断,因为绑定物体被删除所以停止协程");
                    Stop();
                    yield break;
                }

                // 暂停
                if (Paused)
                {
                    yield return(null);
                }
                else
                {
                    // 运行
                    if (e != null && e.MoveNext())
                    {
                        yield return(e.Current);
                    }
                    else
                    {
                        Running = false;
                    }
                }
            }

            _internal_call_back(true);
        }