ProjectZ/Assets/Scripts/Network/NetworkManagerUI.cs

165 lines
4.1 KiB
C#
Raw Normal View History

2024-03-20 00:58:47 +03:00
using System;
2024-02-19 21:00:36 +03:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;
using UnityEngine.UI;
using TMPro;
2024-03-20 00:58:47 +03:00
using UnityEngine.SceneManagement;
2024-02-19 21:00:36 +03:00
public class NetworkManagerUI : MonoBehaviour
{
2024-03-17 00:30:59 +03:00
public CustomNetworkManager manager;
2024-02-19 21:00:36 +03:00
public TMP_InputField adressInput;
public TMP_InputField nicknameInput;
2024-03-16 21:11:37 +03:00
public TMP_InputField MaxPlayersInput;
2024-03-17 00:30:59 +03:00
public TMP_InputField MaxMonstersInput;
2024-02-19 21:00:36 +03:00
2024-03-20 00:58:47 +03:00
public GameObject LevelSizeGo;
public TMP_InputField LevelSize;
public TMP_Dropdown LevelSelect;
2024-02-19 21:00:36 +03:00
public GameObject menu;
public GameObject playMenu;
public GameObject settingsMenu;
public GameObject loadingScreen;
private bool _startButtonsState = true;
private bool _settingsButtonState = true;
2024-03-20 00:58:47 +03:00
private void Awake()
2024-02-19 21:00:36 +03:00
{
2024-03-20 00:58:47 +03:00
Cursor.lockState = CursorLockMode.None;
}
2024-02-19 21:00:36 +03:00
2024-03-20 00:58:47 +03:00
void Start()
{
nicknameInput.text = PlayerPrefs.GetString("NickName");
2024-02-19 21:00:36 +03:00
manager.networkAddress = PlayerPrefs.GetString("Adress");
adressInput.text = PlayerPrefs.GetString("Adress");
2024-03-16 21:11:37 +03:00
MaxPlayersInput.text = PlayerPrefs.GetString("MaxPlayers");
2024-03-17 00:30:59 +03:00
MaxMonstersInput.text = PlayerPrefs.GetString("MaxMonsters");
2024-02-19 21:00:36 +03:00
2024-03-20 00:58:47 +03:00
LevelSize.text = PlayerPrefs.GetInt("LevelSize").ToString();
LevelSelect.value = PlayerPrefs.GetInt("Level");
LevelSizeGo.SetActive(LevelSelect.value == 1);
2024-02-19 21:00:36 +03:00
}
#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);
}
2024-03-16 21:11:37 +03:00
public void SetMaxPlayers()
{
manager.maxConnections = int.Parse(MaxPlayersInput.text);
PlayerPrefs.SetString("MaxPlayers", MaxPlayersInput.text);
}
2024-03-17 00:30:59 +03:00
public void SetMaxMonsters()
{
manager.maxMonsters = int.Parse(MaxMonstersInput.text);
PlayerPrefs.SetString("MaxMonsters", MaxMonstersInput.text);
}
2024-02-19 21:00:36 +03:00
2024-03-20 00:58:47 +03:00
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));
}
2024-02-19 21:00:36 +03:00
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
}