using Unity.Netcode;
using UnityEngine;
public class SharedController : NetworkBehaviour
{
public enum PlayerRole
{
None,
Keyboard,
Mouse
}
public static NetworkVariable<ulong> KeyboardPlayer = new NetworkVariable<ulong>(
ulong.MaxValue, NetworkVariableReadPermission.Everyone, NetworkVariableWritePermission.Server);
public static NetworkVariable<ulong> MousePlayer = new NetworkVariable<ulong>(
ulong.MaxValue, NetworkVariableReadPermission.Everyone, NetworkVariableWritePermission.Server);
public override void OnNetworkSpawn()
{
if (IsServer)
{
NetworkManager.Singleton.OnClientConnectedCallback += AssignRole;
}
}
private void AssignRole(ulong clientId)
{
if (KeyboardPlayer.Value == ulong.MaxValue)
{
KeyboardPlayer.Value = clientId;
Debug.Log($"Assigned Keyboard role to {clientId}");
}
else if (MousePlayer.Value == ulong.MaxValue)
{
MousePlayer.Value = clientId;
Debug.Log($"Assigned Mouse role to {clientId}");
}
}
}