Menu
CoddyTech

Récapitulatif : touche d’interaction

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 9 sur 50.

challenge icon

Défi

Facile

Donnez au joueur une touche d’interaction. Les flèches déplacent le joueur (Mover.cs, prêt à l’emploi), et la barre d’espace utilise l’objet le plus proche à portée qui peut être utilisé. Écrivez les éléments suivants :

  • IInteractable : une interface avec une seule méthode, void Interact().
  • Door : chaque utilisation l’ouvre ou la ferme. L’ouverture la fait pivoter de 90 degrés autour de y et affiche Door opened dans le journal ; la fermeture la fait pivoter en sens inverse et affiche Door closed.
  • Chest : la première utilisation affiche Found 5 coins dans le journal (sa valeur coins, définie dans l’Inspector) et vide le coffre. Chaque utilisation ultérieure affiche The chest is empty.
  • Lever : chaque utilisation active ou désactive bridge (un GameObject défini dans l’Inspector, masqué au départ) et affiche Lever pulled dans le journal.
  • Interactor, sur le joueur : lorsque la barre d’espace est pressée (détectez-la avec Keyboard.current du système d’entrée), trouvez les colliders à portée (reach, soit 1.5) avec Physics.OverlapSphere, puis appelez Interact() sur celui qui possède un IInteractable et dont la position est la plus proche du joueur. Si aucun objet n’est à portée, rien ne se passe.

Appuyez sur Play, déplacez-vous et utilisez tout, puis cliquez sur Check.

Essayez vous-même

using UnityEngine;
using UnityEngine.InputSystem;

// Space utilise l’objet le plus proche à portée.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

Toutes les leçons de Architecture de jeu dans Unity