/// <summary> /// 初始化LUA脚本 /// </summary> private void InitLuaScript() { TextAsset asset = ResourceManager.Instance.SyncLoad <TextAsset>("Lua/Main.lua", PatchDefine.AssetBundleDefaultVariant); _gameTable = ExecuteScript(asset.bytes, "Main") as LuaTable; _funStart = _gameTable.Get <Action>("Start"); _funUpdate = _gameTable.Get <Action>("Update"); _funLanguage = _gameTable.Get <LanguageDelegate>("Language"); _funNetMessage = _gameTable.Get <NetMessageDelegate>("HandleNetMessage"); }
/// <summary> /// 初始化LUA脚本 /// </summary> private void InitLuaScript() { TextAsset asset = LoadAsset("Lua/Main.lua"); _gameTable = ExecuteScript(asset.bytes, "Main") as LuaTable; _funStart = _gameTable.Get <Action>("Start"); _funUpdate = _gameTable.Get <Action>("Update"); _funLanguage = _gameTable.Get <LanguageDelegate>("Language"); _funNetMessage = _gameTable.Get <NetMessageDelegate>("HandleNetMessage"); }
/// <summary> /// 添加消息处理 /// </summary> /// <param name="msgID"></param> /// <param name="hand"></param> public void AddMessageParse(int msgID, NetMessageDelegate hand) { if (hand == null) { return; } if (!_msgHandlers.ContainsKey(msgID)) { _msgHandlers.Add(msgID, new List <NetMessageDelegate>()); } _msgHandlers[msgID].Add(hand); }
/// <summary> /// 移除消息处理 /// </summary> /// <param name="msgID"></param> /// <param name="hand"></param> public void RemoveMessageParse(int msgID, NetMessageDelegate hand) { if (hand == null) { return; } if (!_msgHandlers.ContainsKey(msgID)) { return; } if (_msgHandlers[msgID].Contains(hand)) { _msgHandlers[msgID].Remove(hand); } }
/// <summary> /// 派发消息 /// </summary> /// <param name="msgID"></param> /// <param name="data"></param> private void DispatchMessage(int msgID, byte[] data) { if (data == null || data.Length == 0) { return; } OnReceiveMessage?.Invoke(msgID, data); if (!_msgHandlers.ContainsKey(msgID)) { return; } var lstHandler = _msgHandlers[msgID]; var aryHandler = new NetMessageDelegate[lstHandler.Count]; lstHandler.CopyTo(aryHandler); foreach (var item in aryHandler) { item(data); } }
public void RemoveMessageParse(int msgID, NetMessageDelegate hand) { _message.RemoveMessageParse(msgID, hand); }
public void AddMessageParse(int msgID, NetMessageDelegate hand) { _message.AddMessageParse(msgID, hand); }