Script per l'aspetto del mouse per Unity

Lo script seguente consente il movimento di rotazione guidato dal mouse con opzioni per controllare l'asse X, l'asse Y o entrambi contemporaneamente. Ideale per creare coinvolgenti controlli dei personaggi o dinamiche prospettive della fotocamera in progetti Unity. Personalizza la sensibilità e i vincoli di rotazione per adattare l'esperienza alle tue esigenze specifiche.

Passi

  • Crea un nuovo script, chiamalo 'SC_MouseLook', quindi incolla il codice seguente al suo interno.

'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;
    }
}
  • Allega lo script 'SC_MouseLook' al tuo GameObject o alla tua fotocamera in Unity.
  • Scegli gli assi di rotazione ("MouseXAndY", "MouseX" o "MouseY") in Inspector.
  • Ottimizza la sensibilità del mouse con i parametri "sensitivityX" e "sensitivityY".
  • Facoltativamente, impostare i vincoli di rotazione utilizzando "minimumX", "maximumX", "minimumY" e "maximumY".
  • Personalizza altri parametri in base ai requisiti del tuo progetto.
  • Accedi alla modalità Gioca per testare e osservare il movimento della telecamera guidato dal mouse.
  • Regola i vincoli di sensibilità e rotazione per il comportamento desiderato.
  • Integra GameObject con 'SC_MouseLook' nel tuo progetto più grande Unity.
Articoli suggeriti
Script C# per creare un effetto traccia del cursore in Unity
Editor della mappa dell'altezza del terreno nel gioco per Unity
Script per creare un interruttore della luce in Unity
Come impostare il controller joystick per il movimento in Unity
Tutorial sull'attacco corpo a corpo 2D per Unity
Tutorial sul timer per il conto alla rovescia per Unity
Come generare oggetti con un clic del mouse