Maussteuerung in Unity

In diesem Tutorial erfahren Sie, wie Sie grundlegende Maussteuerungen in Unity implementieren. Wir behandeln die Erkennung von Mauseingaben, die Handhabung von Mausklicks, Mausbewegungen und die Interaktion mit Spielobjekten mithilfe der Maus.

Einrichten des Projekts

Bevor wir mit dem Programmieren beginnen, richten wir ein einfaches Unity-Projekt ein:

  1. Erstellen Sie ein neues Unity-Projekt.
  2. Fügen Sie der Szene ein neues 3D- oder 2D-Objekt hinzu (z. B. einen Würfel oder ein Sprite).
  3. Erstellen Sie ein neues C#-Skript mit dem Namen MouseController und hängen Sie es an die Hauptkamera oder ein beliebiges leeres GameObject an.

Erkennen von Mauseingaben

Unity bietet integrierte Methoden zum Erkennen von Mauseingaben. Wir können die Methode Input.GetMouseButtonDown verwenden, um Maustastendrücke zu erkennen.

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");
        }
    }
}

Umgang mit Mausklicks

Um Mausklicks auf Objekte zu verarbeiten, müssen wir Raycasting verwenden. Mit Raycasting können wir erkennen, ob sich ein Mausklick mit Spielobjekten in der Szene überschneidet.

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
            }
        }
    }
}

Mausbewegung

Die Erkennung von Mausbewegungen in Unity kann mit Input.GetAxis erfolgen. Wir können die Achsen Maus X und Maus Y verwenden, um die Mausbewegung in horizontaler und vertikaler Richtung zu ermitteln.

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);
        }
    }
}

Interagieren mit Spielobjekten

Erweitern wir unser Skript, um mit Spielobjekten zu interagieren. Wir ändern die Farbe eines Objekts, wenn darauf geklickt wird.

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);
        }
    }
}

Abschluss

Wir haben die Grundlagen der Maussteuerung in Unity behandelt. Wir haben gelernt, wie man Mauseingaben erkennt, Mausklicks verarbeitet, Mausbewegungen verfolgt und mithilfe von Raycasting mit Spielobjekten interagiert. Diese Konzepte können erweitert werden, um komplexere Interaktionen in Ihren Unity-Projekten zu erstellen.