public static int StopCoroutine(System.IntPtr L) { int nargs = LuaAPI.GetTop(L); if (nargs == 2 && LuaAPI.IsObject(L, 1) && LuaAPI.IsObject(L, 2)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); System.Collections.IEnumerator arg1 = (System.Collections.IEnumerator)LuaCallback.ToObject(L, 2); arg0.StopCoroutine(arg1); return(0); } if (nargs == 2 && LuaAPI.IsObject(L, 1) && LuaAPI.IsObject(L, 2)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); UnityEngine.Coroutine arg1 = (UnityEngine.Coroutine)LuaCallback.ToObject(L, 2); arg0.StopCoroutine(arg1); return(0); } if (nargs == 2 && LuaAPI.IsObject(L, 1) && LuaAPI.IsString(L, 2)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); System.String arg1 = (System.String)LuaCallback.ToString(L, 2); arg0.StopCoroutine(arg1); return(0); } return(0); }
IEnumerator InternalCoroutine(RoutineData data) { parentNode.SetStatus(NodeCanvas.Framework.Status.Running); if (onStart != null) { onStart.Call(data.flow); } data.flow.BeginBreakBlock(BreakAll); while (data.enumerator.MoveNext()) { while (graphPaused) { yield return(null); } if (onUpdate != null) { onUpdate.Call(data.flow); } yield return(data.enumerator.Current); } data.flow.EndBreakBlock(); parentNode.SetStatus(NodeCanvas.Framework.Status.Resting); onFinish.Call(data.flow); currentCoroutine = null; if (routineQueue != null && routineQueue.Count > 0) { var next = routineQueue.Dequeue(); currentCoroutine = MonoManager.current.StartCoroutine(InternalCoroutine(next)); } }
IEnumerator InternalCoroutine(IEnumerator enumerator, Flow f) { var parentNode = outFlow.parent; parentNode.SetStatus(NodeCanvas.Status.Running); outFlow.Call(f); while (enumerator.MoveNext()) { while (graphPaused) { yield return(null); } doing.Call(f); yield return(enumerator.Current); } parentNode.SetStatus(NodeCanvas.Status.Resting); done.Call(f); currentCoroutine = null; if (queue.Count > 0) { queue.Dequeue(); if (queue.Count > 0) { Begin(queue.Peek(), f); } } }
public static int StartCoroutine(System.IntPtr L) { int nargs = LuaAPI.GetTop(L); if (nargs == 2 && LuaAPI.IsObject(L, 1) && LuaAPI.IsString(L, 2)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); System.String arg1 = (System.String)LuaCallback.ToString(L, 2); UnityEngine.Coroutine res = arg0.StartCoroutine(arg1); LuaCallback.PushObject(L, res); return(1); } if (nargs == 3 && LuaAPI.IsObject(L, 1) && LuaAPI.IsString(L, 2) && LuaAPI.IsObject(L, 3)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); System.String arg1 = (System.String)LuaCallback.ToString(L, 2); System.Object arg2 = (System.Object)LuaCallback.ToObject(L, 3); UnityEngine.Coroutine res = arg0.StartCoroutine(arg1, arg2); LuaCallback.PushObject(L, res); return(1); } if (nargs == 2 && LuaAPI.IsObject(L, 1) && LuaAPI.IsObject(L, 2)) { UnityEngine.MonoBehaviour arg0 = (UnityEngine.MonoBehaviour)LuaCallback.ToObject(L, 1); System.Collections.IEnumerator arg1 = (System.Collections.IEnumerator)LuaCallback.ToObject(L, 2); UnityEngine.Coroutine res = arg0.StartCoroutine(arg1); LuaCallback.PushObject(L, res); return(1); } return(0); }
protected override void Use() { if (wait_coroutine == null) { wait_coroutine = inflictor.StartCoroutine(Main.WaitAndDo(WaitAndUse, conf.before_delay)); } }
static int _m_ReloadWindow(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); KEngine.UI.UIModule gen_to_be_invoked = (KEngine.UI.UIModule)translator.FastGetCSObj(L, 1); { string _windowTemplateName = LuaAPI.lua_tostring(L, 2); KCallback _callback = translator.GetDelegate <KCallback>(L, 3); UnityEngine.Coroutine gen_ret = gen_to_be_invoked.ReloadWindow(_windowTemplateName, _callback); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
///---------------------------------------------------------------------------------------------- //begins a new coroutine protected void Begin(IEnumerator enumerator, Flow f) { if (enumeratorQueue == null) { enumeratorQueue = new Queue <IEnumerator>(); } if (flowQueue == null) { flowQueue = new Queue <Flow>(); } if (exposeRoutineControls && invocationMode == InvocationMode.QueueCalls) { if (!enumeratorQueue.Contains(enumerator)) { enumeratorQueue.Enqueue(enumerator); flowQueue.Enqueue(f); } } if (currentCoroutine == null) { currentCoroutine = MonoManager.current.StartCoroutine(InternalCoroutine(enumerator, f)); } }
IEnumerator InternalCoroutine(RoutineData data) { Flow f = data.flow; parentNode.SetStatus(NodeCanvas.Framework.Status.Running); if (onStart != null) { onStart.Call(f); } f.BeginBreakBlock(() => { BreakAll(true); }); while (data.enumerator.MoveNext()) { while (!parentNode.graph.didUpdateLastFrame) { yield return(null); } if (onUpdate != null) { onUpdate.Call(f); } yield return(data.enumerator.Current); } f.EndBreakBlock(); parentNode.SetStatus(NodeCanvas.Framework.Status.Resting); onFinish.Call(f); currentCoroutine = null; if (routineQueue != null && routineQueue.Count > 0) { var next = routineQueue.Dequeue(); currentCoroutine = parentNode.StartCoroutine(InternalCoroutine(next)); } }
public override void OnGraphStoped() { if (coroutine != null) { StopCoroutine(coroutine); coroutine = null; } }
private static void StopStreaming() { if (streamer.IsNotNull()) { UnityInstance.Instance.StopCoroutine(streamer); streamer = null; } }
public Coroutine( string name, CoroutineManager manager, UnityEngine.Coroutine coroutine) { Name = name; _manager = manager; _coroutine = coroutine; }
private IEnumerator RunCoroutines() { while (m_coroutineChains.Count > 0) { m_currentCoroutine = CoroutineManager.Instance.StartCoroutine(m_coroutineChains.Dequeue()); yield return(m_currentCoroutine); } StopCoroutine(); }
public void StartGame() { if (_coroutine != null) { _coroutineManager.StopCoroutine(_coroutine); } _levelModel.Clear(); _coroutine = _coroutineManager.StartCoroutine(GameRoutine()); }
static int _m_StartCoroutine(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.MonoBehaviour gen_to_be_invoked = (UnityEngine.MonoBehaviour)translator.FastGetCSObj(L, 1); int gen_param_count = LuaAPI.lua_gettop(L); if (gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string _methodName = LuaAPI.lua_tostring(L, 2); UnityEngine.Coroutine gen_ret = gen_to_be_invoked.StartCoroutine( _methodName); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 2 && translator.Assignable <System.Collections.IEnumerator>(L, 2)) { System.Collections.IEnumerator _routine = (System.Collections.IEnumerator)translator.GetObject(L, 2, typeof(System.Collections.IEnumerator)); UnityEngine.Coroutine gen_ret = gen_to_be_invoked.StartCoroutine( _routine); translator.Push(L, gen_ret); return(1); } if (gen_param_count == 3 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING) && translator.Assignable <object>(L, 3)) { string _methodName = LuaAPI.lua_tostring(L, 2); object _value = translator.GetObject(L, 3, typeof(object)); UnityEngine.Coroutine gen_ret = gen_to_be_invoked.StartCoroutine( _methodName, _value); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.MonoBehaviour.StartCoroutine!")); }
//begins a new coroutine protected void Begin(IEnumerator enumerator, Flow f) { if (!queue.Contains(enumerator)) { queue.Enqueue(enumerator); } if (currentCoroutine == null) { currentCoroutine = MonoManager.current.StartCoroutine(InternalCoroutine(enumerator, f)); } }
//breaks all coroutine queues protected void Break() { if (currentCoroutine != null) { MonoManager.current.StopCoroutine(currentCoroutine); queue = new Queue <IEnumerator>(); currentCoroutine = null; outFlow.parent.SetStatus(NodeCanvas.Status.Resting); OnBreak(); done.Call(new Flow()); } }
protected override void RegisterPorts() { var c = AddValueInput <bool>("Condition"); var fCurrent = AddFlowOutput("Do"); var fFinish = AddFlowOutput("Done"); AddFlowInput("In", (f) => { if (coroutine == null) { coroutine = StartCoroutine(DoWhile(fCurrent, fFinish, f, c)); } }); }
//breaks all coroutine queues protected void BreakAll(bool callFinish) { if (currentCoroutine != null) { parentNode.StopCoroutine(currentCoroutine); currentCoroutine = null; routineQueue = null; parentNode.SetStatus(NodeCanvas.Framework.Status.Resting); OnBreak(); if (!graphStoped && callFinish) { onFinish.Call(new Flow()); } } }
IEnumerator DoWhile(FlowOutput fCurrent, FlowOutput fFinish, Flow f, ValueInput <bool> condition) { while (condition.value) { while (graph.isPaused) { yield return(null); } fCurrent.Call(f); yield return(null); } coroutine = null; fFinish.Call(f); }
//breaks all coroutine queues protected void BreakAll() { if (currentCoroutine != null) { MonoManager.current.StopCoroutine(currentCoroutine); currentCoroutine = null; routineQueue = null; onFinish.parent.SetStatus(NodeCanvas.Framework.Status.Resting); OnBreak(); if (!graphStoped) { onFinish.Call(new Flow()); } } }
static StackObject *Stop_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 1); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Coroutine @coroutine = (UnityEngine.Coroutine) typeof(UnityEngine.Coroutine).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); EB.Coroutines.Stop(@coroutine); return(__ret); }
static IEnumerator UF_InvokeCorotine(int id, IEnumerator method, bool blockEvent) { UnityEngine.Coroutine coroutine = GameMain.Instance.StartCoroutine(method); //绑定到Map中 s_CoroutineMap.Add(id, coroutine); yield return(coroutine); //解除绑定 s_CoroutineMap.Remove(id); //发送携程完成消息 if (!blockEvent) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_COROUTINE_STATE, 1, id); } }
//breaks all coroutine queues protected void Break() { if (currentCoroutine != null) { MonoManager.current.StopCoroutine(currentCoroutine); enumeratorQueue = new Queue <IEnumerator>(); flowQueue = new Queue <Flow>(); currentCoroutine = null; done.parent.SetStatus(NodeCanvas.Status.Resting); OnBreak(); if (!graphStoped) { done.Call(new Flow()); } } }
static int _m_StopCoroutine(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.MonoBehaviour __cl_gen_to_be_invoked = (UnityEngine.MonoBehaviour)translator.FastGetCSObj(L, 1); int __gen_param_count = LuaAPI.lua_gettop(L); try { if (__gen_param_count == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) { string methodName = LuaAPI.lua_tostring(L, 2); __cl_gen_to_be_invoked.StopCoroutine(methodName); return(0); } if (__gen_param_count == 2 && translator.Assignable <System.Collections.IEnumerator>(L, 2)) { System.Collections.IEnumerator routine = (System.Collections.IEnumerator)translator.GetObject(L, 2, typeof(System.Collections.IEnumerator)); __cl_gen_to_be_invoked.StopCoroutine(routine); return(0); } if (__gen_param_count == 2 && translator.Assignable <UnityEngine.Coroutine>(L, 2)) { UnityEngine.Coroutine routine = (UnityEngine.Coroutine)translator.GetObject(L, 2, typeof(UnityEngine.Coroutine)); __cl_gen_to_be_invoked.StopCoroutine(routine); return(0); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to UnityEngine.MonoBehaviour.StopCoroutine!")); }
protected override void RegisterPorts() { var fStart = AddFlowOutput("Start"); var fUpdate = AddFlowOutput("Update"); var fFinish = AddFlowOutput("Finish"); AddFlowInput("Start", (f) => { if (!active) { active = true; coroutine = StartCoroutine(DoRepeat(fStart, fUpdate, fFinish, f)); } }); AddFlowInput("Break", (f) => { active = false; }); }
//SL--修复flow 避免return节点出错 //breaks all coroutine queues protected void BreakAll() { if (currentCoroutine != null) { MonoManager.current.StopCoroutine(currentCoroutine); if (!graphStoped) { breaked.Call(quequed ? routineQueue.Dequeue().flow : tempF); } currentCoroutine = null; routineQueue = null; onFinish.parent.SetStatus(NodeCanvas.Framework.Status.Resting); OnBreak(); quequed = false; } }
static StackObject *Add_1(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Coroutine @item = (UnityEngine.Coroutine) typeof(UnityEngine.Coroutine).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); System.Collections.Generic.List <UnityEngine.Coroutine> instance_of_this_method = (System.Collections.Generic.List <UnityEngine.Coroutine>) typeof(System.Collections.Generic.List <UnityEngine.Coroutine>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); instance_of_this_method.Add(@item); return(__ret); }
static StackObject *StopCoroutine_11(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Coroutine routine = (UnityEngine.Coroutine) typeof(UnityEngine.Coroutine).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.MonoBehaviour instance_of_this_method; instance_of_this_method = (UnityEngine.MonoBehaviour) typeof(UnityEngine.MonoBehaviour).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); instance_of_this_method.StopCoroutine(routine); return(__ret); }
IEnumerator DoWhile(FlowOutput fCurrent, FlowOutput fFinish, Flow f, ValueInput <bool> condition) { var active = true; f.breakCall = () => { active = false; }; while (active && condition.value) { while (graph.isPaused) { yield return(null); } fCurrent.Call(f); yield return(null); } coroutine = null; f.breakCall = null; fFinish.Call(f); }
///---------------------------------------------------------------------------------------------- //begins a new coroutine protected void Begin(IEnumerator enumerator, Flow f) { var data = new RoutineData(enumerator, f); if (currentCoroutine == null) { currentCoroutine = MonoManager.current.StartCoroutine(InternalCoroutine(data)); return; } if (routineQueue == null) { routineQueue = new Queue <RoutineData>(); } if (allowRoutineQueueing && invocationMode == InvocationMode.QueueCalls) { routineQueue.Enqueue(data); } }