El control del mouse en primera persona de Unity no funciona correctamente
– UnityAssets3Free
buenas , me llamo Camilo y para hoy os traigo
esta nueva pregunta
Estoy tratando de hacer una cámara en primera persona por primera vez y tengo un pequeño problema aquí. Tengo 2 objetos, una cápsula y una cámara. La cámara es la hija de la Cápsula. Quiero girar hacia los lados (Y) en la cápsula e inclinar hacia arriba y hacia abajo en la cámara (la «cabeza»). Pero cuando coloco estos scripts, uno en cada objeto, no puedo girar la cámara hacia los lados, solo hacia arriba y hacia abajo, y tengo un movimiento de «sacudida» (como cuando chocas contra una pared). este es mi codigo de capsula
[SerializeField] private int speed = 10;
void Update()
gameObject.transform.Translate
(Input.GetAxis("Horizontal") * speed * Time.deltaTime, 0, Input.GetAxis("Vertical")* speed * Time.deltaTime);
transform.eulerAngles = new Vector3(0, Input.GetAxis("Mouse X"), 0);
Y este es mi código de cámara.
private float angle;
void Update()
angle += Input.GetAxis("Mouse Y");
transform.eulerAngles = new Vector3(Mathf.Clamp(-angle, -90, 90), 0, 0);
1 respuesta 1
Actualmente está configurando la rotación y de la cápsula directamente a
Input.GetAxis("Mouse X")
Pero GetAxis("Mouse X")
devolverá un valor de 0 cuando no mueva el mouse y un valor de -1/1 cuando mueva el mouse hacia la izquierda o hacia la derecha.
lo que debes hacer es agregar Input.GetAxis("Mouse X")
para la rotación y actual de la cápsula como esta (también debe multiplicarla por time.deltaTime para que sea independiente de la velocidad de fotogramas):
transform.eulerAngles += new Vector3(0, Input.GetAxis("Mouse X") * time.deltaTime, 0)
Además, la rotación de la cámara debe multiplicarse por deltaTime para que sea independiente de la velocidad de fotogramas de los juegos. Solo cambia:
angle += Input.GetAxis("Mouse Y");
por:
angle += Input.GetAxis("Mouse Y") * time.deltaTime;
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
eso es todo,espero que te funcione