public void Destroy()
    {
        if (luaState != null)
        {
#if UNITY_5_4_OR_NEWER
            SceneManager.sceneLoaded -= OnSceneLoaded;
#endif
            LuaState state = luaState;
            luaState = null;

            if (levelLoaded != null)
            {
                levelLoaded.Dispose();
                levelLoaded = null;
            }

            if (loop != null)
            {
                loop.Destroy();
                loop = null;
            }

            CsRpcWrap.DisposeCSLuaFunc();
            state.Dispose();
        }
    }
 protected void StartLooper()
 {
     if (null == loop)
     {
         loop = new LuaLooperEx();
         loop.Init(luaState);
     }
 }