Visualizza il testo sul tocco dell'oggetto in Unity

Benvenuto in questo tutorial Unity, in cui imparerai come far apparire il testo quando tocchi un oggetto nel tuo gioco. Questa semplice interazione può aggiungere un elemento coinvolgente al tuo progetto. Questo tutorial funzionerà sia su dispositivi mobili che su desktop.

Passaggio 1: crea un progetto Unity

Se non l'hai ancora fatto, inizia aprendo Unity e creando un nuovo progetto 3D. Assicurati di avere installato le risorse necessarie per il tuo ambiente di sviluppo preferito.

Passaggio 2: importa oggetto 3D

Importa un oggetto 3D nella tua scena che rappresenta l'oggetto con cui i giocatori interagiranno. Potrebbe essere un cubo, una sfera o qualsiasi altro oggetto adatto al tuo gioco.

Passaggio 3: aggiungi Collider

Collega un componente collisore al tuo oggetto 3D. Ciò gli consentirà di rilevare quando altri oggetti interagiscono con esso. I tipi più comuni di collisore includono Box Collider, Sphere Collider o Mesh Collider, a seconda della forma dell'oggetto.

Passaggio 4: crea tela e testo

Crea un UI Canvas facendo clic con il pulsante destro del mouse sulla gerarchia della scena, selezionando UI e quindi Canvas. All'interno dell'area di disegno, aggiungi un componente Testo che visualizzerà il tuo messaggio.

Passaggio 5: imposta Canvas su World Space

Cambia la modalità di rendering del componente Canvas in 'World Space'. Ciò consente alla tela di esistere nello spazio 3D del tuo gioco.

Passaggio 6: posizionare la tela

Regola la posizione della tela in modo che si allinei con il tuo oggetto 3D. Ciò garantisce che il testo venga visualizzato vicino all'oggetto quando viene attivato.

Passaggio 7: scrivere la sceneggiatura

Scrivi uno script che rileverà quando il giocatore interagisce con l'oggetto. Quando avviene l'interazione, attiva la tela e imposta il contenuto del componente Testo. Controlla lo script di esempio qui sotto:

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

Passaggio 8: aggiungi lo script all'oggetto

Allega uno script C# al tuo oggetto 3D, che gestirà la logica di interazione e assegnerà tutte le variabili necessarie.

Passaggio 9: prova il tuo gioco

Esegui il tuo gioco e testa l'interazione. Il testo dovrebbe apparire quando si fa clic o si tocca l'oggetto designato.