// this LoadCLRPackage can rename the 'import' function
 public static void LoadCLRPackage(this Lua lua, string newImportName)
 {
     lua.LoadCLRPackage();
     if (!string.IsNullOrEmpty(newImportName))
     {
         string str = string.Format(@"
             if _G.import then -- To avoid ambiguity, rename _G.import
                 _G.{0} = _G.import;
                 _G.import = nil;
             end", newImportName);
         LuaLib.LuaLDoString(lua.LuaState, str);
     }
 }
        public static void SetSearcher(Lua lua)
        {
            if (SearcherUnityLuaFunction == null)
                SearcherUnityLuaFunction = new LuaNativeFunction(Searcher_UnityLua);

            LuaLib.LuaPushStdCallCFunction(lua.LuaState, SearcherUnityLuaFunction);
            LuaLib.LuaSetGlobal(lua.LuaState, "____SearcherUnityLuaFunction");

            string str = @"
                if _G.____SearcherUnityLuaFunction then
                    table.insert(package.searchers, 1, _G.____SearcherUnityLuaFunction);
                    _G.____SearcherUnityLuaFunction = nil
                end";
            LuaLib.LuaLDoString(lua.LuaState, str);
        }
示例#3
0
 void Init()
 {
     LuaLib.LuaPushString(luaState, "LUAINTERFACE LOADED");
     LuaLib.LuaPushBoolean(luaState, true);
     LuaLib.LuaSetTable(luaState, (int)LuaIndexes.Registry);
     if (_StatePassed == false)
     {
         LuaLib.LuaNewTable(luaState);
         LuaLib.LuaSetGlobal(luaState, "luanet");
     }
     LuaLib.LuaNetPushGlobalTable(luaState);
     LuaLib.LuaGetGlobal(luaState, "luanet");
     LuaLib.LuaPushString(luaState, "getmetatable");
     LuaLib.LuaGetGlobal(luaState, "getmetatable");
     LuaLib.LuaSetTable(luaState, -3);
     LuaLib.LuaNetPopGlobalTable(luaState);
     translator = new ObjectTranslator(this, luaState);
     ObjectTranslatorPool.Instance.Add(luaState, translator);
     LuaLib.LuaNetPopGlobalTable(luaState);
     LuaLib.LuaLDoString(luaState, Lua.initLuanet);
 }
示例#4
0
 /*
  * Registers the indexing function of CLR objects
  * passed to Lua
  */
 private void CreateIndexingMetaFunction(LuaState luaState)
 {
     LuaLib.LuaPushString(luaState, "luaNet_indexfunction");
     LuaLib.LuaLDoString(luaState, MetaFunctions.LuaIndexFunction);
     LuaLib.LuaRawSet(luaState, (int)LuaIndexes.Registry);
 }
示例#5
0
 public void LoadCLRPackage()
 {
     LuaLib.LuaLDoString(luaState, Lua.clr_package);
 }