165 lines
4.1 KiB
C#
165 lines
4.1 KiB
C#
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 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();
|
|
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 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
|
|
|
|
}
|