Geef tekst weer bij objectaanraking in eenheid

Welkom bij deze Unity tutorial, waarin je leert hoe je tekst kunt laten verschijnen wanneer je een object in je spel aanraakt. Deze eenvoudige interactie kan een meeslepend element aan uw project toevoegen. Deze tutorial werkt zowel op mobiel als op desktop.

Stap 1: Creëer een Unity-project

Als u dat nog niet heeft gedaan, begint u met het openen van Unity en het maken van een nieuw 3D-project. Zorg ervoor dat u de benodigde middelen hebt geïnstalleerd voor de ontwikkelomgeving van uw voorkeur.

Stap 2: Importeer 3D-object

Importeer een 3D-object in je scène dat het item vertegenwoordigt waarmee spelers zullen communiceren. Dit kan een kubus, bol of een ander object zijn dat geschikt is voor jouw spel.

Stap 3: Voeg Collider toe

Voeg een botsingscomponent toe aan uw 3D-object. Hierdoor kan het detecteren wanneer andere objecten ermee interageren. Veel voorkomende typen botsingen zijn Box Collider, Sphere Collider of Mesh Collider, afhankelijk van de vorm van uw object.

Stap 4: Maak een canvas en tekst

Maak een UI Canvas door met de rechtermuisknop in de scènehiërarchie te klikken, UI en vervolgens Canvas te selecteren. Voeg binnen het canvas een tekstcomponent toe die uw bericht weergeeft.

Stap 5: Stel Canvas in op World Space

Wijzig de weergavemodus van de canvascomponent in 'World Space'. Hierdoor kan het canvas in de 3D-ruimte van je game bestaan.

Stap 6: Plaats canvas

Pas de positie van het canvas aan zodat het uitgelijnd is met uw 3D-object. Dit zorgt ervoor dat de tekst bij activering in de buurt van het object verschijnt.

Stap 7: Schrijf een script

Schrijf een script dat detecteert wanneer de speler interactie heeft met het object. Wanneer er interactie plaatsvindt, activeert u het Canvas en stelt u de inhoud van de component Tekst in. Bekijk het onderstaande voorbeeldscript:

'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!";
        }
    }
}

Stap 8: Script aan object toevoegen

Voeg een C#-script toe aan uw 3D-object, dat de interactielogica afhandelt en alle noodzakelijke variabelen toewijst.

Stap 9: Test je spel

Voer je spel uit en test de interactie. De tekst zou moeten verschijnen wanneer u op het aangewezen object klikt of aanraakt.

Voorgestelde artikelen
Een Game Over-scène creëren in eenheid
Inleiding tot variabelen en gegevenstypen bij programmeren in eenheid
Een Bazooka in eenheid creëren
Uitgebreide gids voor het transformeren van rotatie in eenheid
Verzamelobjecten en power-ups maken in Unity
Werken met tekenreeksen en tekstgegevens in eenheid manipuleren
Gids voor monogedrag in eenheid