Afficher le texte sur l'objet tactile dans Unity

Bienvenue dans ce didacticiel Unity, dans lequel vous apprendrez à faire apparaître du texte lorsque vous touchez un objet dans votre jeu. Cette simple interaction peut ajouter un élément immersif à votre projet. Ce didacticiel fonctionnera à la fois sur mobile et sur ordinateur.

Étape 1: Créer un projet Unity

Si vous ne l'avez pas encore fait, commencez par ouvrir Unity et créez un nouveau projet 3D. Assurez-vous que les ressources nécessaires sont installées pour votre environnement de développement préféré.

Étape 2: Importer un objet 3D

Importez un objet 3D dans votre scène qui représente l'objet avec lequel les joueurs interagiront. Cela peut être un cube, une sphère ou tout autre objet adapté à votre jeu.

Étape 3: ajouter un collisionneur

Attachez un composant collisionneur à votre objet 3D. Cela lui permettra de détecter quand d'autres objets interagissent avec lui. Les types de collisionneurs courants incluent Box Collider, Sphere Collider ou Mesh Collider, selon la forme de votre objet.

Étape 4: Créer un canevas et du texte

Créez un UI Canvas en cliquant avec le bouton droit dans la hiérarchie des scènes, en sélectionnant UI, puis Canvas. À l’intérieur du canevas, ajoutez un composant Texte qui affichera votre message.

Étape 5: Définir le canevas sur l'espace mondial

Modifiez le mode de rendu du composant Canvas en 'World Space'. Cela permet au canevas d’exister dans l’espace 3D de votre jeu.

Étape 6: Positionner le canevas

Ajustez la position du canevas pour qu'il s'aligne avec votre objet 3D. Cela garantit que le texte apparaît à proximité de l'objet lorsqu'il est déclenché.

Étape 7: écrire le script

Écrivez un script qui détectera quand le joueur interagit avec l'objet. Lorsqu'une interaction se produit, activez le canevas et définissez le contenu du composant Texte. Vérifiez l'exemple de script ci-dessous:

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

Étape 8: Ajouter un script à l'objet

Attachez un script C# à votre objet 3D, qui gérera la logique d'interaction et attribuera toutes les variables nécessaires.

Étape 9: Testez votre jeu

Exécutez votre jeu et testez l'interaction. Le texte doit apparaître lorsque vous cliquez ou touchez l'objet désigné.