Files
test/Assets/Scripts/ChatInputHandler.cs
T
2026-02-26 15:54:18 +07:00

71 lines
2.0 KiB
C#

using System;
using BrewMonster;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using BrewMonster.Network;
using CSNetwork;
using CSNetwork.GPDataType;
public class ChatInputHandler : MonoSingleton<ChatInputHandler>
{
[Header("UI References")]
public TMP_InputField inputField; // Ô gõ text
public Button sendButton; // Nút gửi
private void Start()
{
/*// Lắng nghe khi nhấn nút gửi
//sendButton.onClick.AddListener(OnSendClicked);
// Lắng nghe phím Enter
inputField.onSubmit.AddListener(OnSubmit);*/
EventBus.Subscribe<GameSession.ChatMessageEvent>(OnSubmit);
DontDestroyOnLoad(gameObject);
}
private void OnDestroy()
{
EventBus.Unsubscribe<GameSession.ChatMessageEvent>(OnSubmit);
}
// Khi nhấn Enter
private void OnSubmit(GameSession.ChatMessageEvent text)
{
if (!string.IsNullOrWhiteSpace(text.context))
{
HandleUserInput(text.context);
}
}
// Khi nhấn nút Gửi
private void OnSendClicked()
{
string text = inputField.text;
if (!string.IsNullOrWhiteSpace(text))
{
HandleUserInput(text);
}
}
// Hàm xử lý input (log ra, gửi server, thêm vào chat UI, ...)
private void HandleUserInput(string text)
{
Debug.Log("Người dùng vừa gõ: " + text);
// TODO: xử lý text (ví dụ: thêm vào chat box, gửi network,...)
UnityGameSession.SendChatData((byte)ChatChannel.GP_CHAT_LOCAL, text,0,0);
// Reset input
inputField.text = "";
inputField.ActivateInputField(); // focus lại để tiếp tục gõ
}
private void Send(string text)
{
Debug.Log("Người dùng vừa gõ: " + text);
// TODO: xử lý text (ví dụ: thêm vào chat box, gửi network,...)
UnityGameSession.SendChatData((byte)ChatChannel.GP_CHAT_LOCAL, text,0,0);
}
}