Contrôles de la souris dans Unity

Dans ce didacticiel, vous apprendrez à implémenter les commandes de base de la souris dans Unity. Nous aborderons la détection des entrées de la souris, la gestion des clics de souris, le mouvement de la souris et l'interaction avec les objets du jeu à l'aide de la souris.

Mise en place du projet

Avant de commencer à coder, configurons un projet Unity simple:

  1. Créez un nouveau projet Unity.
  2. Ajoutez un nouvel objet 3D ou 2D à la scène (par exemple, un cube ou un Sprite).
  3. Créez un nouveau script C# nommé MouseController et attachez-le à la caméra principale ou à n'importe quel GameObject vide.

Détection de l'entrée de la souris

Unity fournit des méthodes intégrées pour détecter les entrées de la souris. Nous pouvons utiliser la méthode Input.GetMouseButtonDown pour détecter les pressions sur les boutons de la souris.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) // Left mouse button
        {
            Debug.Log("Left mouse button pressed");
        }

        if (Input.GetMouseButtonDown(1)) // Right mouse button
        {
            Debug.Log("Right mouse button pressed");
        }
    }
}

Gestion des clics de souris

Pour gérer les clics de souris sur les objets, nous devons utiliser Raycasting. Raycasting nous permet de détecter si un clic de souris intersecte des objets de jeu dans la scène.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                Debug.Log("Hit: " + hit.transform.name);
                // Perform actions on the hit object here
            }
        }
    }
}

Mouvement de la souris

La détection du mouvement de la souris dans Unity peut être effectuée à l'aide de Input.GetAxis. Nous pouvons utiliser les axes Mouse X et Mouse Y pour obtenir le mouvement de la souris dans les directions horizontale et verticale.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X");
        float mouseY = Input.GetAxis("Mouse Y");

        if (mouseX != 0 || mouseY != 0)
        {
            Debug.Log("Mouse moved. X: " + mouseX + " Y: " + mouseY);
        }
    }
}

Interagir avec les objets du jeu

Étendons notre script pour interagir avec les objets du jeu. Nous allons changer la couleur d'un objet lorsqu'il est cliqué.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                Renderer renderer = hit.transform.GetComponent();
                if (renderer != null)
                {
                    renderer.material.color = Random.ColorHSV();
                }
            }
        }

        float mouseX = Input.GetAxis("Mouse X");
        float mouseY = Input.GetAxis("Mouse Y");

        if (mouseX != 0 || mouseY != 0)
        {
            Debug.Log("Mouse moved. X: " + mouseX + " Y: " + mouseY);
        }
    }
}

Conclusion

Nous avons abordé les bases des commandes de souris dans Unity. Nous avons appris à détecter les entrées de souris, à gérer les clics de souris, à suivre les mouvements de la souris et à interagir avec les objets du jeu à l'aide de Raycasting. Ces concepts peuvent être étendus pour créer des interactions plus complexes dans vos projets Unity.