Mouse Look Script pentru Unity

Scriptul de mai jos permite mișcarea de rotație condusă de mouse cu opțiuni pentru a controla axa X, axa Y sau ambele simultan. Ideal pentru a crea controale captivante ale caracterelor sau perspective dinamice ale camerei în proiecte Unity. Personalizați constrângerile de sensibilitate și rotație pentru a adapta experiența la nevoile dvs. specifice.

Pași

  • Creați un nou script, numiți-l 'SC_MouseLook', apoi inserați codul de mai jos în el.

'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;
    }
}
  • Atașați scriptul 'SC_MouseLook' la GameObject sau Camera dvs. în Unity.
  • Alegeți axele de rotație ("MouseXAndY", "MouseX" sau "MouseY") în Inspector.
  • Reglați fin sensibilitatea mouse-ului cu parametrii "sensitivityX" și "sensitivityY".
  • Opțional, setați constrângeri de rotație folosind "minimumX", "maximumX", "minimumY" și "maximumY".
  • Personalizați alți parametri în funcție de cerințele proiectului dvs.
  • Intrați în modul Play pentru a testa și observa mișcarea camerei cu mouse-ul.
  • Ajustați sensibilitatea și constrângerile de rotație pentru comportamentul dorit.
  • Integrați GameObject cu 'SC_MouseLook' în proiectul dvs. mai mare Unity.
Articole sugerate
Script pentru crearea unui comutator de lumină în Unity
Unity Cum se generează obiecte la clic de mouse
Script de împușcare cu arma Raycast și proiectile pentru Unity
Cum să configurați controlerul cu joystick pentru mișcare în Unity
Tutorial cu cronometrul de numărătoare inversă pentru Unity
Selectarea unității în stil RTS pentru Unity
Script C# pentru crearea unui efect de traseu al cursorului în Unity