public override void Execute(IMessage message) { object data = message.Body; if (data == null) { return; } if (luaMgr == null) { luaMgr = AppFacade.Instance.GetManager <LuaManager>(ManagerName.Lua); } if (data is KeyValuePair <int, ByteBuffer> ) { KeyValuePair <int, ByteBuffer> buffer = (KeyValuePair <int, ByteBuffer>)data; luaMgr.CallLuaFunction <int, ByteBuffer>("Network.OnSocket", buffer.Key, buffer.Value); //switch (buffer.Key) { // default: Util.CallMethod("Network", "OnSocket", buffer.Key, buffer.Value); break; //} } else if (data is KeyValuePair <int, RazByteBuffer> ) { KeyValuePair <int, RazByteBuffer> buffer = (KeyValuePair <int, RazByteBuffer>)data; luaMgr.CallLuaFunction <int, RazByteBuffer>("Network.OnSocket", buffer.Key, buffer.Value); } }
/// <summary> /// 执行Lua方法 /// </summary> public static object[] CallMethod(string module, string func, params object[] args) { LuaManager luaMgr = LuaManager.Instance;//AppFacade.Instance.GetManager<LuaScriptMgr>(ManagerName.Lua); if (luaMgr == null) { return(null); } string funcName = module + "." + func; funcName = funcName.Replace("(Clone)", ""); return(luaMgr.CallLuaFunction(funcName, args)); }
static int CallLuaFunction(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); string arg0 = ToLua.CheckString(L, 1); LuaManager.CallLuaFunction(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
void OnGUI() { //GUI.Label(new Rect(10, 0, 500, 50), "(1) 单击 \"Lua/Gen Lua Wrap Files\"。(2) 运行Unity游戏"); //GUI.Label(new Rect(10, 20, 500, 50), "PS: 清除缓存,单击\"Lua/Clear LuaBinder File + Wrap Files\"。"); //GUI.Label(new Rect(10, 40, 500, 50), "PS: 若运行到真机,请设置Const.DebugMode=false,本地调试=true"); //GUI.Label(new Rect(10, 60, 900, 50), message); GUILayout.BeginHorizontal(); //string luafile = "ui/common/TipsMediator"; //luafile = GUILayout.TextField(luafile, 30); if (GUILayout.Button(fun1btn)) { //LuaManager.DoFile(luafile); LuaManager.CallLuaFunction("MainTestOpen"); } if (GUILayout.Button(fun2btn)) {//这里的问题在于全部的数据也被销毁了,要重新向服务器请求。 //AppFacade.Instance.UnloadLuaState(); LuaManager.CallLuaFunction("MainTestClose"); } if (GUILayout.Button(fun3btn)) { LuaManager.CallLuaFunction <string>("Facade.SendMessage", "OpenTips"); //AppFacade.Instance.EnterLua(); //"切进主城", "模拟进入主城注册Command。" //LuaManager.CallLuaFunction("Facade.ChangeScene"); //LuaManager.CallLuaFunction<string>("GameManager.OnSceneLoaded", "main_city"); } GUILayout.Label("Message:" + message); GUILayout.EndHorizontal(); if (string.IsNullOrEmpty(messageName)) { return; } if (messageName.StartsWith("EXTRACT_")) { GUILayout.Label("正在解包的文件:" + extractFileName); GUILayout.Label("当前解包数/总数:" + extractNowCount + "/" + extractAllCount); progress = (float)extractNowCount / extractAllCount; GUILayout.Label(string.Format("解包进度数:{0:F}%", progress * 100.0)); } else if (messageName.StartsWith("UPDATE_")) { GUILayout.Label("正在下载的文件:" + updateFileName); GUILayout.Label("下载状态数:" + updateNowCount + "/" + updateAllCount); GUILayout.Label("下载速度:" + updateSpeed); } }