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); }
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); }
public ChildCoroutineJoiner(Coroutine pCoroutine) { _pCoroutine = pCoroutine; _pCoroutine.IncRef(); _childCoroutines = new List <Coroutine>(); _pCoroutine._OnChildCoStart += _onChildCoStart; _pCoroutine._OnChildCoStop += _onChildCoStop; }
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); }
protected void _onChildCoStart(Coroutine co) { _childCoroutines.Add(co); co.IncRef(); _nRunningChildCoCount++; }