using TMPro;
using UnityEngine;
using Unity.Netcode;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;
public class UIManager : NetworkBehaviour
{
public Transform[] spawnPoints;
[SerializeField]
private Button startServerButton;
[SerializeField]
private Button startHostButton;
[SerializeField]
private Button startClientButton;
[SerializeField]
private Button leaveGameButton;
public override void OnNetworkSpawn()
{
base.OnNetworkSpawn();
if (!IsServer)
{
enabled = false;
return;
}
OnServerSpawnPlayer();
}
void OnServerSpawnPlayer()
{
var spawnPoint = ServerPlayerSpawnPoints.Instance.ConsumeNextSpawnPoint();
var spawnPosition = spawnPoint ? spawnPoint.transform.position : Vector3.zero;
m_ClientPlayerMove.SetSpawnClientRpc(spawnPosition,
new ClientRpcParams() { Send = new ClientRpcSendParams() { TargetClientIds = new[] { OwnerClientId } } });
}
private void Awake()
{
Cursor.visible = true;
}
private void Start()
{
startHostButton.onClick.AddListener(() =>
{
if (NetworkManager.Singleton.StartHost())
{
Debug.Log("Host started...");
}
else
{
Debug.Log("Host could not be started...");
}
});
startServerButton.onClick.AddListener(() =>
{
if (NetworkManager.Singleton.StartServer())
{
Debug.Log("Server started...");
}
else
{
Debug.Log("Server could not be started...");
}
});
startClientButton.onClick.AddListener(() =>
{
if (NetworkManager.Singleton.StartClient())
{
Debug.Log("Client started...");
}
else
{
Debug.Log("Client could not be started...");
}
});
leaveGameButton.onClick.AddListener(() =>
{
SceneManager.LoadScene("UI");
});
}
}