public virtual void Destroy()
{
if (luaState != null)
{
#if UNITY_5_4
SceneManager.sceneLoaded -= OnSceneLoaded;
#endif
LuaState state = luaState;
luaState = null;
if (levelLoaded != null)
{
levelLoaded.Dispose();
levelLoaded = null;
}
if (loop != null)
{
loop.Destroy();
loop = null;
}
state.Dispose();
Instance = null;
}
}