From 3c39f4a3c9c05e1b268f6a1794e218a86a57e110 Mon Sep 17 00:00:00 2001 From: bob <605277374@qq.com> Date: Thu, 7 Aug 2025 17:51:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=BF=E6=92=AD=E8=81=8A=E5=A4=A9=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Net/MessageHandler.meta | 3 ++ .../MessageHandler/Chat2C_MessageHandler.cs | 20 +++++++++ .../Chat2C_MessageHandler.cs.meta | 3 ++ Assets/Scripts/UI/ChatItem.cs | 5 +++ Assets/Scripts/UI/ChatTestPanel.cs | 41 +++++++++++++++++++ Fishing2.sln.DotSettings.user | 1 + 6 files changed, 73 insertions(+) create mode 100644 Assets/Scripts/Net/MessageHandler.meta create mode 100644 Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs create mode 100644 Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs.meta diff --git a/Assets/Scripts/Net/MessageHandler.meta b/Assets/Scripts/Net/MessageHandler.meta new file mode 100644 index 000000000..815c61dad --- /dev/null +++ b/Assets/Scripts/Net/MessageHandler.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 513b2467b34d4c159035e59b0f79164c +timeCreated: 1754532816 \ No newline at end of file diff --git a/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs b/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs new file mode 100644 index 000000000..7876a2ece --- /dev/null +++ b/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs @@ -0,0 +1,20 @@ +using NBC; +using NBC.Network; +using NBC.Network.Interface; + +namespace NBF +{ + public class Chat2C_MessageHandler : Message + { + protected override async FTask Run(Session session, Chat2C_Message message) + { + Log.Debug($"收到一条消息推送,message={message.Message}"); + var chatTestPanel = App.UI.GetUI(); + if (chatTestPanel != null) + { + chatTestPanel.Message(message.Message); + } + await FTask.CompletedTask; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs.meta b/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs.meta new file mode 100644 index 000000000..e17b453f7 --- /dev/null +++ b/Assets/Scripts/Net/MessageHandler/Chat2C_MessageHandler.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4937340a042f4608918a01ecf456b6fe +timeCreated: 1754532888 \ No newline at end of file diff --git a/Assets/Scripts/UI/ChatItem.cs b/Assets/Scripts/UI/ChatItem.cs index 8bd926e5d..77ffc8880 100644 --- a/Assets/Scripts/UI/ChatItem.cs +++ b/Assets/Scripts/UI/ChatItem.cs @@ -11,5 +11,10 @@ namespace NBF private void OnInited() { } + + public void InitData(string message) + { + TextMessage.text = message; + } } } \ No newline at end of file diff --git a/Assets/Scripts/UI/ChatTestPanel.cs b/Assets/Scripts/UI/ChatTestPanel.cs index b689e4025..8718cc03f 100644 --- a/Assets/Scripts/UI/ChatTestPanel.cs +++ b/Assets/Scripts/UI/ChatTestPanel.cs @@ -1,5 +1,6 @@ // 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖 +using System.Collections.Generic; using Assets.Scripts.Entity; using Assets.Scripts.Hotfix; using FairyGUI; @@ -12,6 +13,8 @@ namespace NBF { public partial class ChatTestPanel : UIPanel { + private List _messages = new List(); + protected override void OnInit() { this.AutoAddClick(OnClick); @@ -22,6 +25,18 @@ namespace NBF SetLoginState(false); } + private void RefreshList() + { + ChatList.RemoveChildrenToPool(); + foreach (var item in _messages) + { + if(ChatList.AddItemFromPool() is ChatItem chatItem) + { + chatItem.InitData(item); + } + } + } + private void OnClick(GComponent btn) { if (btn == BtnLogin) @@ -34,6 +49,10 @@ namespace NBF OnLoginButtonClick(InputAccount.text).Coroutine(); } + else if (btn == BtnSendWorld) + { + OnSendMessage(InputMessage.title).Coroutine(); + } } private void SetLoginState(bool isLogin = false, string account = "") @@ -133,5 +152,27 @@ namespace NBF } #endregion + + #region 发生消息测试 + + private async FTask OnSendMessage(string message) + { + var messageResponse = (Caht2C_SendMessageResponse)await _session.Call(new C2Chat_SendMessageRequest() + { + Message = message + }); + if (messageResponse.ErrorCode != 0) + { + Notices.Info($"发送消息失败,code={messageResponse.ErrorCode}"); + } + } + + public void Message(string message) + { + _messages.Add(message); + RefreshList(); + } + + #endregion } } \ No newline at end of file diff --git a/Fishing2.sln.DotSettings.user b/Fishing2.sln.DotSettings.user index 6eeb723e7..f3aafc372 100644 --- a/Fishing2.sln.DotSettings.user +++ b/Fishing2.sln.DotSettings.user @@ -23,5 +23,6 @@ ForceIncluded ForceIncluded ForceIncluded + VISIBLE_FILES \ No newline at end of file