Script de recherche de souris pour Unity

Le script ci-dessous permet un mouvement de rotation piloté par la souris avec des options permettant de contrôler simultanément l'axe X, l'axe Y ou les deux. Idéal pour créer des commandes de caractères immersives ou des perspectives de caméra dynamiques dans les projets Unity. Personnalisez les contraintes de sensibilité et de rotation pour adapter l’expérience à vos besoins spécifiques.

Pas

  • Créez un nouveau script, nommez-le 'SC_MouseLook', puis collez le code ci-dessous à l'intérieur.

'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;
    }
}
  • Attachez le script 'SC_MouseLook' à votre GameObject ou Camera en Unity.
  • Choisissez les axes de rotation ("MouseXAndY", "MouseX" ou "MouseY") dans Inspector.
  • Ajustez la sensibilité de la souris avec les paramètres "sensitivityX" et "sensitivityY".
  • Vous pouvez éventuellement définir des contraintes de rotation à l'aide de "minimumX", "maximumX", "minimumY" et "maximumY".
  • Personnalisez d'autres paramètres en fonction des exigences de votre projet.
  • Entrez en mode Play pour tester et observer le mouvement de la caméra piloté par la souris.
  • Ajustez les contraintes de sensibilité et de rotation pour le comportement souhaité.
  • Intégrez le GameObject avec 'SC_MouseLook' dans votre plus grand projet Unity.
Articles suggérés
Script pour créer un interrupteur d'éclairage dans Unity
Unity Comment générer des objets en un clic de souris
Sélection d'unités de style RTS pour Unity
Script C# pour créer un effet de trace de curseur dans Unity
FPC Swimmer - Un atout Unity complet pour les environnements aquatiques immersifs
Script de tir au pistolet basé sur Raycast et Projectile pour Unity
Comment configurer le contrôleur de joystick pour le mouvement dans Unity