Vis tekst på objektberøring i Unity
Velkommen til denne Unity selvstudie, hvor du lærer, hvordan du får tekst til at vises, når du rører ved et objekt i dit spil. Denne enkle interaktion kan tilføje et fordybende element til dit projekt. Denne tutorial fungerer på både mobil og desktop.
Trin 1: Opret et Unity-projekt
Hvis du endnu ikke har gjort det, så start med at åbne Unity og oprette et nyt 3D-projekt. Sørg for, at du har de nødvendige aktiver installeret til dit foretrukne udviklingsmiljø.
Trin 2: Importer 3D-objekt
Importer et 3D-objekt til din scene, der repræsenterer det element, spillerne vil interagere med. Dette kan være en terning, kugle eller ethvert andet objekt, der passer til dit spil.
Trin 3: Tilføj Collider
Vedhæft en kolliderer-komponent til dit 3D-objekt. Dette vil gøre det muligt for den at registrere, når andre objekter interagerer med den. Almindelige kollideretyper omfatter Box Collider, Sphere Collider eller Mesh Collider, afhængigt af dit objekts form.
Trin 4: Opret lærred og tekst
Opret et UI Canvas ved at højreklikke i scenehierarkiet, vælge UI og derefter Canvas. Inde i lærredet skal du tilføje en tekstkomponent, der viser din besked.
Trin 5: Indstil Canvas til World Space
Skift gengivelsestilstanden for Canvas-komponenten til 'World Space'. Dette gør det muligt for lærredet at eksistere i dit spils 3D-rum.
Trin 6: Placer lærredet
Juster placeringen af lærredet, så det flugter med dit 3D-objekt. Dette sikrer, at teksten vises i nærheden af objektet, når den udløses.
Trin 7: Skriv script
Skriv et script, der registrerer, når spilleren interagerer med objektet. Når der opstår interaktion, skal du aktivere lærredet og indstille tekstkomponentens indhold. Tjek eksempelscriptet 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!";
}
}
}
Trin 8: Føj script til objekt
Vedhæft et C#-script til dit 3D-objekt, som vil håndtere interaktionslogikken og tildele alle de nødvendige variabler.
Trin 9: Test dit spil
Kør dit spil og test interaktionen. Teksten skal vises, når du klikker eller trykker på det udpegede objekt.