Guión con aspecto de ratón para Unity

El siguiente script permite el movimiento de rotación impulsado por el mouse con opciones para controlar el eje X, el eje Y o ambos simultáneamente. Ideal para crear controles de personajes inmersivos o perspectivas de cámara dinámicas en proyectos Unity. Personalice las restricciones de sensibilidad y rotación para adaptar la experiencia a sus necesidades específicas.

Pasos

  • Cree un nuevo script, asígnele el nombre 'SC_MouseLook' y luego pegue el código siguiente dentro de él.

'SC_MouseLook.cs'

using UnityEngine;

public class SC_MouseLook : MonoBehaviour
{
    public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
    public RotationAxes axes = RotationAxes.MouseXAndY;
    public float sensitivityX = 15F;
    public float sensitivityY = 15F;

    public float minimumX = -360F;
    public float maximumX = 360F;

    public float minimumY = -60F;
    public float maximumY = 60F;

    float rotationY = 0F;

    void Update()
    {
        if (axes == RotationAxes.MouseXAndY)
        {
            float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;

            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
        }
        else if (axes == RotationAxes.MouseX)
        {
            transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
        }
        else
        {
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
        }
    }

    void Start()
    {
        // Make the rigid body not change rotation
        if (GetComponent<Rigidbody>())
            GetComponent<Rigidbody>().freezeRotation = true;
    }
}
  • Adjunte el script 'SC_MouseLook' a su GameObject o cámara en Unity.
  • Elija los ejes de rotación ("MouseXAndY", "MouseX" o "MouseY") en el Inspector.
  • Ajuste la sensibilidad del mouse con los parámetros "sensitivityX" y "sensitivityY".
  • Opcionalmente, establezca restricciones de rotación usando "minimumX", "maximumX", "minimumY" y "maximumY".
  • Personalice otros parámetros según los requisitos de su proyecto.
  • Ingrese al modo Reproducir para probar y observar el movimiento de la cámara impulsada por el mouse.
  • Ajuste las restricciones de sensibilidad y rotación para el comportamiento deseado.
  • Integre GameObject con 'SC_MouseLook' en su proyecto Unity más grande.
Artículos sugeridos
Un activo integral de Unity para entornos acuáticos inmersivos
Guión de disparos de armas basado en Raycast y proyectiles para Unity
Tutorial de ataque cuerpo a cuerpo 2D para Unity
Script para crear un interruptor de luz en Unity
Cómo configurar el controlador de joystick para el movimiento en Unity
Colección de monedas 2D en Unity
Tutorial del temporizador de cuenta regresiva para Unity