53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Mirror.Examples.Chat
|
|
{
|
|
public class LoginUI : MonoBehaviour
|
|
{
|
|
[Header("UI Elements")]
|
|
[SerializeField] internal InputField networkAddressInput;
|
|
[SerializeField] internal InputField usernameInput;
|
|
[SerializeField] internal Button hostButton;
|
|
[SerializeField] internal Button clientButton;
|
|
[SerializeField] internal Text errorText;
|
|
|
|
public static LoginUI instance;
|
|
|
|
string originalNetworkAddress;
|
|
|
|
void Awake()
|
|
{
|
|
instance = this;
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
// if we don't have a networkAddress, set a default one.
|
|
if (string.IsNullOrWhiteSpace(NetworkManager.singleton.networkAddress))
|
|
NetworkManager.singleton.networkAddress = "localhost";
|
|
|
|
// cache the original networkAddress for resetting if blank.
|
|
originalNetworkAddress = NetworkManager.singleton.networkAddress;
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
// bidirectional sync of networkAddressInput and NetworkManager.networkAddress
|
|
// Order of operations is important here...Don't switch the order of these steps.
|
|
if (string.IsNullOrWhiteSpace(NetworkManager.singleton.networkAddress))
|
|
NetworkManager.singleton.networkAddress = originalNetworkAddress;
|
|
|
|
if (networkAddressInput.text != NetworkManager.singleton.networkAddress)
|
|
networkAddressInput.text = NetworkManager.singleton.networkAddress;
|
|
}
|
|
|
|
// Called by UI element UsernameInput.OnValueChanged
|
|
public void ToggleButtons(string username)
|
|
{
|
|
hostButton.interactable = !string.IsNullOrWhiteSpace(username);
|
|
clientButton.interactable = !string.IsNullOrWhiteSpace(username);
|
|
}
|
|
}
|
|
}
|