Vis tekst på objektberøring i Unity
Velkommen til denne Unity veiledningen, der du lærer hvordan du får tekst til å vises når du berører et objekt i spillet ditt. Denne enkle interaksjonen kan legge til et oppslukende element til prosjektet ditt. Denne opplæringen vil fungere på både mobil og desktop.
Trinn 1: Lag et Unity-prosjekt
Hvis du ikke har gjort det ennå, start med å åpne Unity og lage et nytt 3D-prosjekt. Sørg for at du har de nødvendige ressursene installert for ditt foretrukne utviklingsmiljø.
Trinn 2: Importer 3D-objekt
Importer et 3D-objekt til scenen din som representerer gjenstanden spillerne vil samhandle med. Dette kan være en kube, kule eller et annet objekt som passer for spillet ditt.
Trinn 3: Legg til Collider
Fest en kollidererkomponent til 3D-objektet ditt. Dette vil gjøre det mulig for den å oppdage når andre objekter samhandler med den. Vanlige kollideretyper inkluderer Box Collider, Sphere Collider eller Mesh Collider, avhengig av objektets form.
Trinn 4: Lag lerret og tekst
Lag et UI Canvas ved å høyreklikke i scenehierarkiet, velge UI og deretter Canvas. Inne i lerretet legger du til en tekstkomponent som viser meldingen din.
Trinn 5: Sett Canvas til World Space
Endre gjengivelsesmodus for Canvas-komponenten til 'World Space'. Dette gjør at lerretet kan eksistere i 3D-rommet i spillet ditt.
Trinn 6: Plasser lerretet
Juster plasseringen av lerretet slik at det er på linje med 3D-objektet ditt. Dette sikrer at teksten vises nær objektet når den utløses.
Trinn 7: Skriv skript
Skriv et script som vil oppdage når spilleren samhandler med objektet. Når interaksjon oppstår, aktiverer du lerretet og setter tekstkomponentens innhold. Sjekk eksempelskriptet nedenfor:
'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!";
}
}
}
Trinn 8: Legg til skript til objekt
Fest et C#-skript til 3D-objektet ditt, som vil håndtere interaksjonslogikken og tilordne alle nødvendige variabler.
Trinn 9: Test spillet ditt
Kjør spillet ditt og test interaksjonen. Teksten skal vises når du klikker eller berører det angitte objektet.