39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using Unity.Netcode;
|
|
using UnityEngine;
|
|
|
|
public class PlayerController : NetworkBehaviour
|
|
{
|
|
[SerializeField] private Camera playerCamera;
|
|
[SerializeField] private Camera playerHandCamera;
|
|
[SerializeField] private GameObject tpvHands;
|
|
[SerializeField] private GameObject fpvHands;
|
|
|
|
[Header("Colors")]
|
|
[SerializeField] private Color ownerColor = Color.blue;
|
|
[SerializeField] private Color otherPlayerColor = Color.red;
|
|
|
|
public override void OnNetworkSpawn()
|
|
{
|
|
if (playerCamera != null)
|
|
{
|
|
playerCamera.enabled = IsOwner;
|
|
playerHandCamera.enabled = IsOwner;
|
|
playerCamera.GetComponent<AudioListener>().enabled = IsOwner;
|
|
fpvHands.SetActive(IsOwner);
|
|
tpvHands.SetActive(!IsOwner);
|
|
}
|
|
|
|
if (IsOwner)
|
|
{
|
|
Cursor.lockState = CursorLockMode.Locked;
|
|
Cursor.visible = false;
|
|
}
|
|
|
|
Color playerColor = IsOwner ? ownerColor : otherPlayerColor;
|
|
foreach (MeshRenderer meshRenderer in GetComponentsInChildren<MeshRenderer>())
|
|
{
|
|
meshRenderer.material.color = playerColor;
|
|
}
|
|
}
|
|
}
|