Zeigen Sie Text bei Objektberührung in Unity an

Willkommen zu diesem Unity-Tutorial, in dem Sie lernen, wie Sie Text anzeigen lassen, wenn Sie ein Objekt in Ihrem Spiel berühren. Diese einfache Interaktion kann Ihrem Projekt ein immersives Element hinzufügen. Dieses Tutorial funktioniert sowohl auf Mobilgeräten als auch auf Desktops.

Schritt 1: Erstellen Sie ein Unity-Projekt

Wenn Sie es noch nicht getan haben, öffnen Sie zunächst Unity und erstellen Sie ein neues 3D-Projekt. Stellen Sie sicher, dass Sie die erforderlichen Ressourcen für Ihre bevorzugte Entwicklungsumgebung installiert haben.

Schritt 2: 3D-Objekt importieren

Importieren Sie ein 3D-Objekt in Ihre Szene, das den Gegenstand darstellt, mit dem Spieler interagieren. Dies kann ein Würfel, eine Kugel oder ein anderes für Ihr Spiel geeignetes Objekt sein.

Schritt 3: Collider hinzufügen

Hängen Sie eine Collider-Komponente an Ihr 3D-Objekt an. Dadurch kann es erkennen, wenn andere Objekte mit ihm interagieren. Zu den gängigen Collider-Typen gehören Box Collider, Sphere Collider oder Mesh Collider, abhängig von der Form Ihres Objekts.

Schritt 4: Leinwand und Text erstellen

Erstellen Sie einen UI-Canvas, indem Sie mit der rechten Maustaste in die Szenenhierarchie klicken, „UI“ und dann „Canvas“ auswählen. Fügen Sie innerhalb der Leinwand eine Textkomponente hinzu, die Ihre Nachricht anzeigt.

Schritt 5: Stellen Sie „Canvas“ auf „Weltraum“ ein

Ändern Sie den Rendermodus der Canvas-Komponente in 'World Space'. Dadurch kann die Leinwand im 3D-Raum Ihres Spiels existieren.

Schritt 6: Leinwand positionieren

Passen Sie die Position der Leinwand so an, dass sie mit Ihrem 3D-Objekt übereinstimmt. Dadurch wird sichergestellt, dass der Text beim Auslösen in der Nähe des Objekts erscheint.

Schritt 7: Skript schreiben

Schreiben Sie ein script, das erkennt, wann der Spieler mit dem Objekt interagiert. Wenn eine Interaktion stattfindet, aktivieren Sie die Leinwand und legen Sie den Inhalt der Textkomponente fest. Sehen Sie sich das folgende Beispielskript an:

'ObjectInteraction.cs'

using UnityEngine;
using UnityEngine.UI;

public class ObjectInteraction : MonoBehaviour
{
    public GameObject canvas;
    public Text displayText;

    private void Start()
    {
        canvas.SetActive(false);
    }

    private void Update()
    {
        // Use inline conditional to determine input position based on platform
        Vector3 inputPosition = (Input.touchCount > 0) ? Input.GetTouch(0).position : (Vector3)Input.mousePosition;

        // Raycast to determine if the touch or click hits the object
        Ray ray = Camera.main.ScreenPointToRay(inputPosition);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
        {
            // Activate the canvas and set the text
            canvas.SetActive(true);
            displayText.text = "Your message here!";
        }
    }
}

Schritt 8: Skript zum Objekt hinzufügen

Hängen Sie ein C#-Skript an Ihr 3D-Objekt an, das die Interaktionslogik übernimmt und alle notwendigen Variablen zuweist.

Schritt 9: Testen Sie Ihr Spiel

Führen Sie Ihr Spiel aus und testen Sie die Interaktion. Der Text sollte erscheinen, wenn Sie auf das angegebene Objekt klicken oder es berühren.