using System.IO; using Module.Log; using XLua; public class LuaMessageManager { private static LuaTable scriptEnv; public static LuaFunction _FunMsgHandle; public void InitMessageManager() { scriptEnv = LuaMain.luaEnv.NewTable(); var meta = LuaMain.luaEnv.NewTable(); meta.Set("__index", LuaMain.luaEnv.Global); scriptEnv.SetMetaTable(meta); meta.Dispose(); LuaMain.luaEnv.DoString("require 'LuaMessageManager'", "LuaMessageManager", scriptEnv); _FunMsgHandle = scriptEnv.Get("ProcessPacket"); LogModule.DebugLog("msg lua fun:" + _FunMsgHandle); } public void LuaProcessPacket(int sysID, int cmdID, MemoryStream memStream) { if (scriptEnv != null) { _FunMsgHandle = scriptEnv.Get("ProcessPacket"); if (_FunMsgHandle != null) _FunMsgHandle.Call(sysID, cmdID, memStream); else LogModule.ErrorLog("_FunMsgHandle is null, can't fine lua function : ProcessPacket !"); } else { LogModule.ErrorLog("scriptEnv is null !!!"); } } #region private static LuaMessageManager _Instance; public static LuaMessageManager Instance { get { if (_Instance == null) { _Instance = new LuaMessageManager(); _Instance.InitMessageManager(); } return _Instance; } } #endregion }