Esempio n. 1
0
        private IEnumerator ExecuteScriptInternal(string script)
        {
            var luaFunc = DynValue.Nil;

            try
            {
                luaFunc = LuaScript.DoString(script);
            }
            catch (InterpreterException ex)
            {
                Debug.LogErrorFormat("Lua Execute error:\n{0}", ex.DecoratedMessage);
            }
            catch (Exception ex)
            {
                Debug.LogException(ex);
            }

            if (luaFunc.IsNil())
            {
                yield break;
            }

            luaCoroutine = null;

            var dynValue = LuaScript.CreateCoroutine(luaFunc);

            if (dynValue.IsNil())
            {
                yield break;
            }

            luaCoroutine = dynValue.Coroutine;

            luaCoroutine.AutoYieldCounter = 1000;

            luaCoroutine.Resume();

            while (true)
            {
                if (luaCoroutine == null)
                {
                    break;
                }

                if (luaCoroutine.State == CoroutineState.Dead)
                {
                    break;
                }

                yield return(null);
            }
        }