Files
PenguinsTwoChase/Assets/Scripts/MainMenu/MainMenuController.cs
2026-05-20 21:11:09 +01:00

52 lines
1.5 KiB
C#

using PashaBibko.PenguinChase.Network;
using WebSocketSharp;
using UnityEngine.UI;
using UnityEngine;
public class MainMenuController : MonoBehaviour
{
[Header("References")]
[SerializeField] private Button HostButton;
[SerializeField] private Button JoinButton;
[SerializeField] private InputField HostCode;
[SerializeField] private Dropdown HostNetworkType;
[SerializeField] private InputField PlayerName;
[SerializeField] private Slider PlayerCount;
private void Start()
{
HostButton.onClick.AddListener(() =>
{
Debug.Log($"[{HostNetworkType.captionText.text}]");
Network.CurrentTransport = HostNetworkType.captionText.text switch
{
"Localhost" => TransportType.Localhost,
"UnityRelay" => TransportType.UnityRelay,
var _ => throw new System.NotImplementedException("Unknown transport type")
};
Network.Host();
});
JoinButton.onClick.AddListener(() =>
{
string code = HostCode.text;
Network.CurrentTransport = code.IsNullOrEmpty()
? TransportType.Localhost
: TransportType.UnityRelay;
Network.Join(code);
});
PlayerCount.onValueChanged.AddListener(value =>
{
GameNetworkClient.LocalClientCount = Mathf.RoundToInt(value);
});
PlayerName.onEndEdit.AddListener(value =>
{
GameNetworkClient.LocalName = value;
});
}
}