Maus-Look-Skript für Unity

Das folgende Skript ermöglicht eine mausgesteuerte Rotationsbewegung mit Optionen zur gleichzeitigen Steuerung der X-Achse, Y-Achse oder beider. Ideal zum Erstellen immersiver Charaktersteuerungen oder dynamischer Kameraperspektiven in Unity Projekten. Passen Sie Empfindlichkeits- und Rotationsbeschränkungen an, um das Erlebnis an Ihre spezifischen Bedürfnisse anzupassen.

Schritte

  • Erstellen ein neues Skript, nennen Sie es 'SC_MouseLook' und fügen Sie dann den folgenden Code ein.

'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;
    }
}
  • Hängen Sie das 'SC_MouseLook'-Skript an Ihr GameObject oder Ihre Kamera in Unity an.
  • Wählen Sie im Inspektor Rotationsachsen („MouseXAndY“, "MouseX" oder "MouseY").
  • Passen Sie die Mausempfindlichkeit mit den Parametern "sensitivityX" und "sensitivityY" an.
  • Legen Sie optional Rotationsbeschränkungen mit "minimumX", "maximumX", "minimumY" und "maximumY" fest.
  • Passen Sie andere Parameter entsprechend Ihren Projektanforderungen an.
  • Wechseln Sie in den Play-Modus, um die mausgesteuerte Kamerabewegung zu testen und zu beobachten.
  • Passen Sie die Empfindlichkeits- und Rotationsbeschränkungen für das gewünschte Verhalten an.
  • Integrieren Sie das GameObject mit 'SC_MouseLook' in Ihr größeres Unity Projekt.