Files
JJBB/Assets/Project/Script/LuaScripts/NetWork/LuaMessageManager.cs
2024-08-23 15:49:34 +08:00

60 lines
1.5 KiB
C#

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<LuaFunction>("ProcessPacket");
LogModule.DebugLog("msg lua fun:" + _FunMsgHandle);
}
public void LuaProcessPacket(int sysID, int cmdID, MemoryStream memStream)
{
if (scriptEnv != null)
{
_FunMsgHandle = scriptEnv.Get<LuaFunction>("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
}