Afișează text pe Object Touch în Unity

Bine ați venit la acest tutorial Unity, unde veți învăța cum să faceți să apară text atunci când atingeți un obiect din joc. Această interacțiune simplă poate adăuga un element captivant proiectului dumneavoastră. Acest tutorial va funcționa atât pe dispozitive mobile, cât și pe desktop.

Pasul 1: Creați un proiect Unity

Dacă nu ați făcut-o încă, începeți prin a deschide Unity și a crea un nou proiect 3D. Asigurați-vă că aveți instalate activele necesare pentru mediul de dezvoltare preferat.

Pasul 2: importați obiecte 3D

Importă în scena ta un obiect 3D care reprezintă obiectul cu care vor interacționa jucătorii. Acesta poate fi un cub, sferă sau orice alt obiect potrivit pentru jocul dvs.

Pasul 3: Adăugați Collider

Atașați o componentă de coliziune la obiectul dvs. 3D. Acest lucru îi va permite să detecteze când alte obiecte interacționează cu el. Tipurile obișnuite de coliziune includ Box Collider, Sphere Collider sau Mesh Collider, în funcție de forma obiectului dvs.

Pasul 4: Creați canvas și text

Creați un UI Canvas făcând clic dreapta în ierarhia scenei, selectând UI, apoi Canvas. În interiorul pânzei, adăugați o componentă Text care va afișa mesajul dvs.

Pasul 5: Setați Canvas la World Space

Schimbați modul de randare al componentei Canvas la 'World Space'. Acest lucru permite pânzei să existe în spațiul 3D al jocului tău.

Pasul 6: Poziționați pânza

Ajustați poziția pânzei astfel încât să se alinieze cu obiectul dvs. 3D. Acest lucru asigură că textul apare lângă obiect atunci când este declanșat.

Pasul 7: Scrieți scriptul

Scrieți un script care va detecta când jucătorul interacționează cu obiectul. Când apare interacțiunea, activați Canvasul și setați conținutul componentei Text. Verificați exemplul de script de mai jos:

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

Pasul 8: Adăugați script la obiect

Atașați un script C# la obiectul dvs. 3D, care va gestiona logica interacțiunii și va atribui toate variabilele necesare.

Pasul 9: Testează-ți jocul

Rulați jocul și testați interacțiunea. Textul ar trebui să apară când faceți clic sau atingeți obiectul desemnat.

Articole sugerate
Lucrul cu șiruri și manipularea datelor text în Unity
Crearea unui Game Over Scene în Unity
Realizarea inventarului și a unui sistem de fabricare a articolelor în Unity
Implementarea grupării obiectelor în Unity
Cum să redați fișiere video în Unity
Crearea unui simulator de vânătoare în Unity
Mod de lucru încorporat cu JSON în Unity Code