ProjectZ/Assets/Scripts/Network/NetworkManagerUI.cs
2024-03-16 21:11:37 +03:00

117 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;
using UnityEngine.UI;
using TMPro;
public class NetworkManagerUI : MonoBehaviour
{
public NetworkManager manager;
public GameObject adressInputGO;
public TMP_InputField adressInput;
public TMP_InputField nicknameInput;
public TMP_InputField MaxPlayersInput;
public GameObject menu;
public GameObject playMenu;
public GameObject settingsMenu;
public GameObject loadingScreen;
private bool _startButtonsState = true;
private bool _settingsButtonState = true;
void Awake()
{
nicknameInput.text = PlayerPrefs.GetString("NickName");
manager.networkAddress = PlayerPrefs.GetString("Adress");
adressInput.text = PlayerPrefs.GetString("Adress");
MaxPlayersInput.text = PlayerPrefs.GetString("MaxPlayers");
Cursor.lockState = CursorLockMode.None;
}
#region Start Buttons
public void StartHost()
{
if (!NetworkClient.active)
{
manager.StartHost();
}
}
public void StartClient()
{
if (!NetworkClient.active)
{
manager.StartClient();
}
}
public void SetAdress()
{
manager.networkAddress = adressInput.text;
PlayerPrefs.SetString("Adress", adressInput.text);
}
public void SetNickname()
{
PlayerPrefs.SetString("NickName", nicknameInput.text);
}
public void SetMaxPlayers()
{
manager.maxConnections = int.Parse(MaxPlayersInput.text);
PlayerPrefs.SetString("MaxPlayers", MaxPlayersInput.text);
}
public void changeStartMenuState()
{
_startButtonsState = !_startButtonsState;
menu.SetActive(_startButtonsState);
playMenu.SetActive(!_startButtonsState);
}
public void changeSettingsMenuState()
{
_settingsButtonState = !_settingsButtonState;
menu.SetActive(_settingsButtonState);
settingsMenu.SetActive(!_settingsButtonState);
}
#endregion
#region Stop Buttons
public void StopClient()
{
manager.StopClient();
}
public void StopButtons()
{
// stop host if host mode
if (NetworkServer.active && NetworkClient.isConnected)
{
manager.StopHost();
}
// stop client if client-only
else if (NetworkClient.isConnected)
{
manager.StopClient();
}
// stop server if server-only
else if (NetworkServer.active)
{
manager.StopServer();
}
}
public void Quit()
{
Application.Quit();
}
#endregion
}