71 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|