예제 #1
0
        static public Coroutine AddCoroutine(this object target, string name = null, Action <Coroutine> onStart = null)
        {
            Coroutine pCoroutine = new Coroutine(CoroutineMgr._Instance, null);

            pCoroutine.name = name == null ? "Coroutine:" + CoroutineMgr._CoroutineIndex++ : name;
            pCoroutine._OnStart(onStart);
            pCoroutine.IncRef();
            return(pCoroutine);
        }
예제 #2
0
        static public Coroutine AddCoroutine(string name = null, Action <Coroutine> onStart = null)
        {
            Coroutine pCoroutine = new Coroutine(_Instance, null);

            pCoroutine.name = name == null ? "Coroutine:" + _CoroutineIndex++ : name;
            pCoroutine._OnStart(onStart);
            pCoroutine.IncRef();
            return(pCoroutine);
        }
예제 #3
0
        public ChildCoroutineJoiner(Coroutine pCoroutine)
        {
            _pCoroutine = pCoroutine;
            _pCoroutine.IncRef();

            _childCoroutines = new List <Coroutine>();

            _pCoroutine._OnChildCoStart += _onChildCoStart;
            _pCoroutine._OnChildCoStop  += _onChildCoStop;
        }
예제 #4
0
        static public Coroutine StartCoroutine(this object target, IEnumerator coroutineFunc
                                               , System.Action <Coroutine> onStart
                                               , Action <Coroutine, CoroutineException> onException
                                               , string name = null)
        {
            Coroutine pCoroutine = CoroutineMgr._Instance._coroutinePool.Get();

            pCoroutine.IncRef();
            pCoroutine.state = CoroutineState.InUse;
            pCoroutine.name  = name == null ? "Coroutine:" + CoroutineMgr._CoroutineIndex++ : name;
            pCoroutine._OnException(onException)._OnStart(onStart);
            pCoroutine._Start(coroutineFunc);

            return(pCoroutine);
        }
예제 #5
0
 protected void _onChildCoStart(Coroutine co)
 {
     _childCoroutines.Add(co);
     co.IncRef();
     _nRunningChildCoCount++;
 }