En tercera persona, la cámara normalmente orbita alrededor del jugador manteniendo cierta distancia.
Jugador
↓ objetivo
Cámara
↺ gira alrededor
[SerializeField]
private Transform objetivo;
[SerializeField]
private float distancia = 5f;
[SerializeField]
private float altura = 2f;
private float yaw;
private float pitch;
Vector2 look =
lookAction.action.ReadValue<Vector2>();
yaw += look.x;
pitch -= look.y;
pitch = Mathf.Clamp(
pitch,
-30f,
70f
);
Quaternion rotacion =
Quaternion.Euler(
pitch,
yaw,
0f
);
Vector3 offset =
rotacion *
new Vector3(
0f,
altura,
-distancia
);
transform.position =
objetivo.position + offset;
transform.LookAt(
objetivo.position +
Vector3.up * altura
);