Files
Darklings-FightingGame/Assets/_Project/Scripts/UIScripts/MenuScripts/OnlineClientMenu.cs
2022-01-19 23:33:02 +01:00

63 lines
1.4 KiB
C#

using Demonics.UI;
using System.Text;
using TMPro;
using Unity.Netcode;
using UnityEngine;
public class OnlineClientMenu : BaseMenu
{
[SerializeField] private TMP_InputField _roomIdInputField = default;
[SerializeField] private TMP_InputField _playerNameInputField = default;
[SerializeField] private BaseMenu _onlineHostMenu = default;
private string _cachedRoomIdText = "";
void OnEnable()
{
//NetworkManager.Singleton.OnClientConnectedCallback += HandleClientConnect;
}
void OnDisable()
{
_cachedRoomIdText = "";
_roomIdInputField.text = "";
}
private void HandleClientConnect(ulong clientId)
{
OpenMenuHideCurrent(_onlineHostMenu);
}
public void Client()
{
string connectionPayload = JsonUtility.ToJson(new ConnectionPayload()
{
RoomId = "abc",
PlayerName = _playerNameInputField.text
});
byte[] payloadBytes = Encoding.UTF8.GetBytes(connectionPayload);
NetworkManager.Singleton.NetworkConfig.ConnectionData = payloadBytes;
NetworkManager.Singleton.StartClient();
OpenMenuHideCurrent(_onlineHostMenu);
}
public void CheckRoomIdInputField(string field)
{
if (_cachedRoomIdText.Length < field.Length)
{
if (field.Length == 4 || field.Length == 9)
{
_roomIdInputField.text += "-";
_roomIdInputField.MoveToEndOfLine(false, false);
}
}
_cachedRoomIdText = field;
}
public void Paste()
{
_roomIdInputField.text = GUIUtility.systemCopyBuffer;
}
}