public static void Register(IntPtr L)
{
int oldTop = LuaDLL.lua_gettop(L);
LuaDLL.lua_getglobal(L, "Object");
if (LuaDLL.lua_isnil(L, -1))
{
LuaDLL.lua_pop(L, 1);
LuaDLL.lua_newtable(L);
LuaDLL.lua_setglobal(L, "Object");
LuaDLL.lua_getglobal(L, "Object");
}
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.New, "New");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.Destroy, "Destroy");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.DestroyImmediate, "DestroyImmediate");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.FindObjectsOfType, "FindObjectsOfType");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.DontDestroyOnLoad, "DontDestroyOnLoad");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.DestroyObject, "DestroyObject");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.ToString, "ToString");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.Equals, "Equals");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.GetHashCode, "GetHashCode");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.GetInstanceID, "GetInstanceID");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.Instantiate, "Instantiate");
LuaDLL.lua_pushstdcallcfunction(L, LuaObject.FindObjectOfType, "FindObjectOfType");
LuaDLL.lua_pushcsharpproperty(L, "name", LuaObject.get_name, LuaObject.set_name);
LuaDLL.lua_pushcsharpproperty(L, "hideFlags", LuaObject.get_hideFlags, LuaObject.set_hideFlags);
LuaDLL.lua_getglobal(L, "readIndex");
LuaDLL.lua_pushvalue(L, -1);
LuaDLL.lua_setfield(L, -3, "__index");
LuaDLL.lua_pop(L, 1);
LuaDLL.lua_getglobal(L, "writeIndex");
LuaDLL.lua_pushvalue(L, -1);
LuaDLL.lua_setfield(L, -3, "__newindex");
LuaDLL.lua_pop(L, 1);
LuaDLL.lua_pushstdcallcfunction(L, new LuaCSFunction(LuaStatic.GameObjectGC));
LuaDLL.lua_setfield(L, -2, "__gc");
LuaDLL.lua_settop(L, oldTop);
LuaStatic.AddTypeDict(typeof(UnityEngine.Object));
}