// PlayerController.
cs atualizado para 2 jogadores, com divisão de tela e controles
separados
using UnityEngine; using [Link];
[RequireComponent(typeof(CharacterController))] public class PlayerController :
MonoBehaviour { [Header("Configurações do Jogador")] public int playerID = 1; // 1 ou 2
public Camera playerCamera; public KeyCode teclaPulo = [Link]; public
KeyCode teclaCorrer = [Link]; public string eixoHorizontal = "Horizontal";
public string eixoVertical = "Vertical"; public string mouseX = "Mouse X"; public string
mouseY = "Mouse Y";
[Header("Movimentação")]
public float velocidade = 5f;
public float velocidadeCorrendo = 8f;
public float sensibilidadeMouse = 2f;
public float alturaPulo = 1.5f;
public float gravidade = -9.81f;
public float limiteRotacaoX = 80f;
[Header("Ativações")] // reduzido para facilitar
public bool Jump = false;
public bool Run = false;
public GameObject Humanoid;
public GameObject Humanoidc;
private CharacterController cc;
private Vector3 velocidadeVertical;
private float rotacaoX = 0f;
private PlayerMoney dinheiroJogador;
void Start()
{
cc = GetComponent<CharacterController>();
dinheiroJogador = GetComponent<PlayerMoney>();
if (!playerCamera) playerCamera =
GetComponentInChildren<Camera>();
SetupCameraView();
Desativar();
}
void Update()
{
Movimento();
CameraLook();
}
void Movimento()
{
bool estaNoChao = [Link];
if (estaNoChao && velocidadeVertical.y < 0)
velocidadeVertical.y = -2f;
float inputX = [Link](eixoHorizontal);
float inputZ = [Link](eixoVertical);
Vector3 move = [Link] * inputX + [Link] *
inputZ;
float velocidadeFinal = [Link](teclaCorrer) && Run ?
velocidadeCorrendo : velocidade;
[Link](move * velocidadeFinal * [Link]);
if (Jump && [Link](teclaPulo) && estaNoChao)
velocidadeVertical.y = [Link](alturaPulo * -2f *
gravidade);
velocidadeVertical.y += gravidade * [Link];
[Link](velocidadeVertical * [Link]);
}
void CameraLook()
{
float mouseInputX = [Link](mouseX) * sensibilidadeMouse;
float mouseInputY = [Link](mouseY) * sensibilidadeMouse;
rotacaoX -= mouseInputY;
rotacaoX = [Link](rotacaoX, -limiteRotacaoX,
limiteRotacaoX);
[Link] =
[Link](rotacaoX, 0f, 0f);
[Link]([Link] * mouseInputX);
}
void Desativar()
{
if (Humanoidc) [Link](false);
}
public void FormaFinal()
{
if ([Link](1000000))
{
[Link](1000000);
[Link](true);
[Link](false);
}
}
void SetupCameraView()
{
if (playerID == 1)
[Link] = new Rect(0f, 0f, 0.5f, 1f);
else if (playerID == 2)
[Link] = new Rect(0.5f, 0f, 0.5f, 1f);
}