void InitLuaEnv() { luaEnv = new LuaEnv(); HasGameStart = false; if (luaEnv != null) { luaEnv.AddLoader(CustomLoader); //注册pblua luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPb); //注册rapidjson luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); } else { Logger.LogError("InitLuaEnv null!!!"); } }
private void Awake() { // load pb lua.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPB); // 检查是否展开文件 InitManager(); Screen.fullScreen = true; Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, true, 60); }
void LuaEnvInit() { //lua 文件查找目录 #if UNITY_EDITOR //先找 Resource 路径 -> StreamingAssets //Resource 路径 _env.AddSearcher(ExtStaticLuaCallbacks.LoadLuaFileFromResource, -4); #else //先找 PersistentDataPath 路径 -> StreamingAssets //沙盒路径 _env.AddSearcher(ExtStaticLuaCallbacks.LoadLuaFileFromPersistentDataPath, -4); #endif //模块注册 _env.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); _env.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); _env.AddBuildin("protobuf.c", XLua.LuaDLL.Lua.LoadProtobufC); }
protected override void Init() { HasGameStart = false; if (_luaEnv == null) { _luaEnv = new LuaEnv(); _luaEnv.AddLoader(CustomLoader); _luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); _luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); _luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadProtobufC); _luaEnv.Global.Set("RootScene", gameObject); } #if UNITY_EDITOR UnityEditor.EditorApplication.playModeStateChanged -= OnEditorPalyModeChanged; UnityEditor.EditorApplication.playModeStateChanged += OnEditorPalyModeChanged; #endif }
public void Init() { if (m_LuaEnv == null) { m_LuaEnv = Lua.LuaEnv; m_LuaEnv.AddBuildin("hot", XLua.LuaDLL.Lua.LoadHotLib); m_LuaEnv.DoString(reload); } }
void Awake() { m_LuaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); m_LuaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); m_LuaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); m_Require = m_LuaEnv.Global.Get <Func <string, LuaTable> >("require"); m_DoFile = m_LuaEnv.Global.Get <Func <string, LuaTable> >("dofile"); m_LoadFile = m_LuaEnv.Global.Get <Func <string, LuaFunction> >("loadfile"); m_TraceBack = m_LuaEnv.Global.GetInPath <Func <string, int, string> >("debug.traceback"); LuaTable package = m_LuaEnv.Global.Get <LuaTable>("package"); m_LoadedTable = package.Get <LuaTable>("loaded"); m_LoadedTable.ForEach <string, object>((key, value) => m_LoadedBuiltInSet.Add(key)); m_PreloadTable = package.Get <LuaTable>("preload"); m_PreloadTable.ForEach <string, object>((key, value) => m_PreloadBuiltInSet.Add(key)); LuaTable xlua = m_LuaEnv.Global.Get <LuaTable>("xlua"); m_LuaEnv.Global.Set <string, LuaTable>("xlua", xlua); m_HotFix = xlua.Get <Action <LuaTable, object, LuaFunction> >("hotfix"); xlua.Set <string, Action <LuaTable, object, LuaFunction> >("hotfix", HotFix); LuaTable util = Require("xlua.util"); m_LuaEnv.Global.Set <string, LuaTable>("util", util); m_HotFixEx = util.Get <Action <LuaTable, object, LuaFunction> >("hotfix_ex"); util.Set <string, Action <LuaTable, object, LuaFunction> >("hotfix_ex", HotFixEx); LuaTable csHelp = Require("LuaUtil.CSHelp"); m_LuaEnv.Global.Set <string, LuaTable>("CSHelp", csHelp); m_FuncInvoke = csHelp.Get <Func <object, object[], object> >("FuncInvoke"); m_LuaEnv.Global.ForEach <string, object>((key, value) => m_GlobalVarBuiltInSet.Add(key)); m_LuaEnv.AddLoader(CustomLoad); Debugger.LogMessageFormat = message => m_TraceBack(message.ToString(), 1); }
protected override void Awake() { LuaEnv.AddLoader(LuaSteamingAssetsLoader.Loader); // LuaEnv.AddLoader(ResourceLuaLoader.Loader); // LuaEnv.AddLoader(LuaDirectoryLoader.Loader); LuaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProtobuf); LuaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); base.Awake(); }
private void Awake() { Instance = this; LuaEnv = new LuaEnv(); //第三方库 LuaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); // LuaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); // LuaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); // LuaEnv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI); }
private void Awake() { Debug.Log("LuaClient Awake !!!"); luaEnv = new LuaEnv(); luaEnv.AddBuildin("rapidjson", LuaAPI.LoadRapidJson); // luaEnv.AddBuildin("") // LuaAPI.ikcp_check(10, 123); instance = this; DontDestroyOnLoad(gameObject); // luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); }
void initLua() { currentLuaEnv = new LuaEnv(); currentLuaEnv.Global.Set <string, bool>("_ANDROID", true); currentLuaEnv.AddLoader((ref string fn) => { return(LuaFilePicker.Load(fn)); }); currentLuaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); currentLuaEnv.DoString("require '" + Defines.LuaEntryFileName + "'"); }
public void Startup() { Clear(); m_luaEnv = new LuaEnv(); foreach (var pairs in DEFAULT_INITER) { m_luaEnv.AddBuildin(pairs.Key, pairs.Value); } m_luaEnv.AddLoader(OnLoaderInvoke); }
public IEnumerator Init() { #if SLUA InitSLua(); #else var L = _luaEnv.L; //在lua G中增加import函数 LuaDLL.lua_pushstdcallcfunction(L, LuaImport); LuaDLL.xlua_setglobal(L, "import"); //TODO lua中需要require的第三方库加到这里,如果不需要则删除已添加的这几行 _luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); _luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); _luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); _luaEnv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI); yield return(null); #endif CallScript("Init"); IsInited = true; }
private void Init() { luaEnv = new LuaEnv(); luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); luaEnv.DoString("require 'main_in'"); XLuaMgr_Init init = luaEnv.Global.Get <XLuaMgr_Init>("Init"); if (init != null) { init(gameManager); } outGame = luaEnv.Global.Get <Action>("OutGame"); }
public IEnumerator Init() { #if SLUA int frameCount = 0; while (!_luaSvr.inited) { if (frameCount % 30 == 0) { Log.LogWarning("SLua Initing..."); } yield return(null); frameCount++; } var L = _luaSvr.luaState.L; LuaDLL.lua_pushcfunction(L, LuaImport); LuaDLL.lua_setglobal(L, "import"); LuaDLL.lua_pushcfunction(L, LuaUsing); LuaDLL.lua_setglobal(L, "using"); // same as SLua's import, using namespace LuaDLL.lua_pushcfunction(L, ImportCSharpType); LuaDLL.lua_setglobal(L, "import_type"); // same as SLua's SLua.GetClass(), import C# type #else var L = _luaEnv.L; LuaDLL.lua_pushstdcallcfunction(L, LuaImport); LuaDLL.xlua_setglobal(L, "import"); //TODO lua中需要require的第三方库加到这里 _luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); _luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); _luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); _luaEnv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI); yield return(null); #endif CallScript("Init"); IsInited = true; }
void Awake() { Application.targetFrameRate = 45; luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaEnv.AddBuildin("protobuf.c", XLua.LuaDLL.Lua.LoadProtobufC); scriptEnv = luaEnv.NewTable(); LuaTable meta = luaEnv.NewTable(); meta.Set("__index", luaEnv.Global); scriptEnv.SetMetaTable(meta); meta.Dispose(); scriptEnv.Set("self", this); foreach (var injection in injections) { scriptEnv.Set(injection.name, injection.value); } luaEnv.AddLoader(CustomLoaderMethod); luaEnv.DoString(luaScript.text, "LuaBehaviour", scriptEnv); Action luaAwake = scriptEnv.Get <Action>("Main_Awake"); #if UNITY_EDITOR scriptEnv.Get("Main_StartEditor", out luaStart); #else scriptEnv.Get("Main_Start", out luaStart); #endif scriptEnv.Get("Main_Update", out luaUpdate); scriptEnv.Get("Main_Ondestroy", out luaOnDestroy); if (luaAwake != null) { luaAwake(); } DontDestroyOnLoad(this); }
// private LuaState lua; // private LuaLoader loader; // private LuaLooper loop = null; // // Use this for initialization void Awake() { scriptEnv = luaEnv.NewTable(); LuaTable meta = luaEnv.NewTable(); meta.Set("__index", luaEnv.Global); scriptEnv.SetMetaTable(meta); meta.Dispose(); scriptEnv.Set("self", this); LuaFileUtils.Instance.AddSearchPath(Util.LuaDataPath + AppConst.LuaTempDir + "?"); luaEnv.AddLoader((ref string filepath) => { var name = filepath.Replace(".", "/"); UnityEngine.Debug.Log("require file: " + name); return(LuaFileUtils.Instance.ReadFile(name)); }); luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); luaEnv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI); }
void Awake() { luaEnv = new LuaEnv(); luaEnv.AddBuildin("cjson", XLua.LuaDLL.Lua.LoadCJson); luaEnv.AddBuildin("sproto", XLua.LuaDLL.Lua.LoadSproto); luaEnv.AddBuildin("crypt", XLua.LuaDLL.Lua.LoadCrypt); luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaEnv.AddBuildin("clonefunc", XLua.LuaDLL.Lua.LoadCloneFunc); luaEnv.DoString(@"local hardreload = require 'hardreload' require = hardreload.require"); luaEnv.DoString(@"require 'ButtonInteraction'"); scriptEnv = luaEnv.Global.Get <LuaTable>("ui");; scriptEnv.Get("start", out luaStart); foreach (var injection in injections) { scriptEnv.Set(injection.name, injection.value); } }
void InitLuaEnv() { luaEnv = new LuaEnv(); HasGameStart = false; if (luaEnv != null) { luaEnv.AddLoader(CustomLoader); luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPb); } else { Logger.LogError("InitLuaEnv null!!!"); } }
private void InitLuaEnv() { luaEnv = new LuaEnv(); if (luaEnv != null) { luaEnv.AddLoader(CustomLoader); luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.LuaBuildIn.LoadRapidJson); this.meta = luaEnv.NewTable(); meta.Set("__index", luaEnv.Global); } //luaFilePathDict.Add("LobbyPanel", "UI/LobbyPanel"); //luaFilePathDict.Add("GamePanel", "UI/GamePanel"); //luaFilePathDict.Add("GameOverPanel", "UI/GameOverPanel"); }
// Use this for initialization void Start() { GG_User user = new GG_User(); user.info = new GG_UserInfo(); user.info.level = 1; user.info.diamond = 999998111111; user.info.name = "ss"; var encode = Serialize(user); GG_User decode = Deserialize <GG_User>(encode); Debug.Log(decode.info.diamond); LuaEnv luaenv = new LuaEnv(); luaenv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); luaenv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaenv.AddBuildin("protobuf.c", XLua.LuaDLL.Lua.LoadProtobufC); luaenv.DoString(luaFile.bytes); }
public void DoStart() { if (IsValid) { Debug.LogError("The bridge has been startup"); return; } Env = new LuaEnv(); Env.AddLoader(LuaScriptLoader.LoadScriptFromProject); #if DEBUG Global.Set("isDebug", true); #endif Env.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); Global.Set("isRapidJson", true); Env.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); gameTable = LuaUtility.RequireAndGet(Env, initScriptPath); updateHandler = gameTable.Get <Action <float, float> >(LuaUtility.UPDATE_FUNCTION_NAME); lateUpdateHandler = gameTable.Get <Action <float, float> >(LuaUtility.UPDATE_FUNCTION_NAME); fixedUpdateHandler = gameTable.Get <Action <float, float> >(LuaUtility.FIXEDUPDATE_FUNCTION_NAME); Action startAction = gameTable.Get <Action>(LuaUtility.START_FUNCTION_NAME); startAction?.Invoke(); }
// Use this for initialization void Start() { LuaEnv luaenv = new LuaEnv(); luaenv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPb); luaenv.DoString(@" local common_pb = require 'Protol.common_pb' local person_pb = require 'Protol.person_pb' local pb_data = nil; function Decoder() local msg = person_pb.Person() msg:ParseFromString(pb_data) --tostring 不会打印默认值 print('person_pb decoder: '..tostring(msg)..'age: '..msg.age..'\nemail: '..msg.email) assert(tonumber(msg.header.cmd) == 10010, 'msg.header.cmd') assert(msg.header.seq == 1, 'msg.header.cmd') assert(tonumber(msg.id) == 1223372036854775807, 'msg.id') assert(msg.name == 'foo', 'msg.name') assert(msg.array[1] == 1, 'msg.array[1]') assert(msg.array[2] == 2, 'msg.array[2]') assert(msg.age == 18, 'msg.age') assert(msg.email == '*****@*****.**', 'msg.email') assert(msg.Extensions[person_pb.Phone.phones][1].num == '13788888888', 'msg.Extensions.num') assert(msg.Extensions[person_pb.Phone.phones][1].type == person_pb.Phone.MOBILE, 'msg.Extensions.type') end function Encoder() local msg = person_pb.Person() msg.header.cmd = 10010 msg.header.seq = 1 msg.id = '1223372036854775807' msg.name = 'foo' --数组添加 msg.array:append(1) msg.array:append(2) --extensions 添加 local phone = msg.Extensions[person_pb.Phone.phones]:add() phone.num = '13788888888' phone.type = person_pb.Phone.MOBILE pb_data = msg:SerializeToString() end Encoder() Decoder() "); luaenv.Dispose(); }
void Awake() { Instance = this; //luaEnv.AddLoader(MyLoader); //luaEnv.DoString("require 'Lua/LuaA'"); //必须跟路径 //luaEnv.DoString("require 'Lua.LuaA'"); //或用.的方式 //第三方库 //luaEnv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); //luaEnv.DoString("require 'rapidjson'"); luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPb); //luaEnv.DoString("require 'protobuf_test'"); //NetworkManager.Connect(); }
void InitLuaEnv() { luaEnv = new LuaEnv(); HasGameStart = false; if (luaEnv != null) { // #if ENABLE_LOG // _luaenv.Global.Set("ENABLE_LOG", true); // #endif luaEnv.AddLoader(CustomLoader); luaEnv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadPb); } else { Logger.LogError("InitLuaEnv null!!!"); } }
public static void Initialize() { if (isInit) { return; } g_LuaEnv.AddBuildin("rapidjson", LoadRapidJson); g_LuaEnv.AddLoader((ref string filename) => { if (loadedInfo.ContainsKey(filename)) { AssetBundle asset = loadedInfo[filename]; UnityEngine.Object objs = asset.LoadAllAssets()[0]; return(Encoding.UTF8.GetBytes(objs.ToString())); } return(null); }); isInit = true; }
public override bool Init() { luaEnv.AddLoader(Require); // luaEnv.AddBuildin("mime.core", XLua.LuaDLL.Lua.LoadSocketMime); luaEnv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaEnv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFfi); luaEnv.AddBuildin("lxp", XLua.LuaDLL.Lua.LoadLxp); luaEnv.AddBuildin("lfb", XLua.LuaDLL.Lua.LoadLfb); luaEnv.AddBuildin("p7zip", XLua.LuaDLL.Lua.LoadP7zip); luaEnv.AddBuildin("lsqlite3", XLua.LuaDLL.Lua.LoadLSQLite3); luaEnv.AddBuildin("luasql.mysql", XLua.LuaDLL.Lua.LoadLuaSqlMysql); // lua.AddBuildin("nslua", XLua.LuaDLL.Lua.LoadNSLua); return(base.Init()); }
public void Init() { m_lua_env = new LuaEnv(); //m_lua_env.AddBuildin( "pb", XLua.LuaDLL.Lua.LoadPb ); //m_lua_env.AddBuildin( "rapidjson", XLua.LuaDLL.Lua.LoadRapidJson ); m_lua_env.AddBuildin("protobuf.c", XLua.LuaDLL.Lua.LoadProtobufC); m_lua_env.AddLoader((ref string path) => { #if UNITY_EDITOR if (ResManager.Instance.ResLoadMode == eResLoadMode.Editor || path == "LuaDebug") //调试文件不打入包 { return(System.IO.File.ReadAllBytes(string.Format("Assets/LuaScript/{0}.lua.txt", path))); } #endif TextAsset asset = null; ResManager.Instance.LoadAsset(string.Format("Assets/LuaScript/{0}.lua.txt", path), (_res_data, _obj) => { asset = _obj as TextAsset; }, false); return(asset.bytes); }); m_lua_env.DoString("require 'Init'"); }
// Use this for initialization void Start() { LuaEnv luaenv = new LuaEnv(); luaenv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); luaenv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaenv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); luaenv.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI); luaenv.DoString(@" ------------------------------------ local rapidjson = require 'rapidjson' local t = rapidjson.decode('{""a"":123}') print(t.a) t.a = 456 local s = rapidjson.encode(t) print('json', s) ------------------------------------ local lpeg = require 'lpeg' print(lpeg.match(lpeg.R '09','123')) ------------------------------------ local pb = require 'pb' local protoc = require 'protoc' assert(protoc:load [[ message Phone { optional string name = 1; optional int64 phonenumber = 2; } message Person { optional string name = 1; optional int32 age = 2; optional string address = 3; repeated Phone contacts = 4; } ]]) local data = { name = 'ilse', age = 18, contacts = { { name = 'alice', phonenumber = 12312341234 }, { name = 'bob', phonenumber = 45645674567 } } } local bytes = assert(pb.encode('Person', data)) print(pb.tohex(bytes)) local data2 = assert(pb.decode('Person', bytes)) print(data2.name) print(data2.age) print(data2.address) print(data2.contacts[1].name) print(data2.contacts[1].phonenumber) print(data2.contacts[2].name) print(data2.contacts[2].phonenumber) --------------------------------- local ffi = require('ffi') ffi.cdef [[ typedef struct {int fake_id;unsigned int len;} CSSHeader; ]] ffi.cdef [[ typedef struct { CSSHeader header; float x; float y; float z; } Vector3; ]] local Vector3Native = ffi.typeof('Vector3 *') local v = CS.UnityEngine.Vector3(1, 2, 3) local vn = ffi.cast(Vector3Native, v) print(vn) if vn.header.fake_id == -1 then print('vector { ', vn.x, vn.y, vn.z, '}') else print('please gen code') end " ); luaenv.Dispose(); }
void AddBuildin() { luaenv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); luaenv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaenv.AddBuildin("protobuf.c", XLua.LuaDLL.Lua.LoadProtobufC); }
// Use this for initialization void Start() { HookSetup.HookLuaFuns(); LuaEnv luaenv = new LuaEnv(); LuaProfiler.SetMainLuaEnv(luaenv); luaenv.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson); luaenv.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg); luaenv.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf); luaenv.DoString(@" ------------------------------------ local rapidjson = require 'rapidjson' local t = rapidjson.decode('{""a"":123}') print(t.a) t.a = 456 local s = rapidjson.encode(t) print('json', s) ------------------------------------ local lpeg = require 'lpeg' print(lpeg.match(lpeg.R '09','123')) ------------------------------------ local pb = require 'pb' local protoc = require 'protoc' assert(protoc:load [[ message Phone { optional string name = 1; optional int64 phonenumber = 2; } message Person { optional string name = 1; optional int32 age = 2; optional string address = 3; repeated Phone contacts = 4; } ]]) local data = { name = 'ilse', age = 18, contacts = { { name = 'alice', phonenumber = 12312341234 }, { name = 'bob', phonenumber = 45645674567 } } } local bytes = assert(pb.encode('Person', data)) print(pb.tohex(bytes)) local data2 = assert(pb.decode('Person', bytes)) print(data2.name) print(data2.age) print(data2.address) print(data2.contacts[1].name) print(data2.contacts[1].phonenumber) print(data2.contacts[2].name) print(data2.contacts[2].phonenumber) " ); //luaenv.Dispose(); }