using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Mirror; using UnityEngine.UI; using TMPro; using UnityEngine.SceneManagement; public class NetworkManagerUI : MonoBehaviour { public CustomNetworkManager manager; public TMP_InputField adressInput; public TMP_InputField nicknameInput; public TMP_InputField MaxPlayersInput; public TMP_InputField MaxMonstersInput; public GameObject LevelSizeGo; public TMP_InputField LevelSize; public TMP_Dropdown LevelSelect; public TMP_InputField EnergySpawnChanceInput; public GameObject menu; public GameObject playMenu; public GameObject settingsMenu; public GameObject loadingScreen; private bool _startButtonsState = true; private bool _settingsButtonState = true; private void Awake() { Cursor.lockState = CursorLockMode.None; } void Start() { nicknameInput.text = PlayerPrefs.GetString("NickName"); manager.networkAddress = PlayerPrefs.GetString("Adress"); adressInput.text = PlayerPrefs.GetString("Adress"); MaxPlayersInput.text = PlayerPrefs.GetString("MaxPlayers"); MaxMonstersInput.text = PlayerPrefs.GetString("MaxMonsters"); LevelSize.text = PlayerPrefs.GetInt("LevelSize").ToString(); EnergySpawnChanceInput.text = PlayerPrefs.GetInt("EnergySpawnChance").ToString(); LevelSelect.value = PlayerPrefs.GetInt("Level"); LevelSizeGo.SetActive(LevelSelect.value == 1); } #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 SetMaxMonsters() { manager.maxMonsters = int.Parse(MaxMonstersInput.text); PlayerPrefs.SetString("MaxMonsters", MaxMonstersInput.text); } string getLevelById(Int32 id) { switch (id) { case 0 : LevelSizeGo.SetActive(false); return "Assets/Scenes/Space.unity"; case 1 : LevelSizeGo.SetActive(true); return "Assets/Scenes/Procedural.unity"; default: LevelSizeGo.SetActive(false); return "Assets/Scenes/Space.unity"; } } public void SetLevel() { PlayerPrefs.SetInt("Level", LevelSelect.value); manager.onlineScene = getLevelById(LevelSelect.value); } public void SetLevelSize() { if (string.IsNullOrEmpty(LevelSize.text)) return; PlayerPrefs.SetInt("LevelSize", Int32.Parse(LevelSize.text)); } public void SetEnergySpawnChance() { if (string.IsNullOrEmpty(EnergySpawnChanceInput.text)) return; PlayerPrefs.SetInt("EnergySpawnChance", Int32.Parse(EnergySpawnChanceInput.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 }