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.
Défi
FacileDonnez 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 openeddans le journal ; la fermeture la fait pivoter en sens inverse et afficheDoor closed. - Chest : la première utilisation affiche
Found 5 coinsdans le journal (sa valeurcoins, définie dans l’Inspector) et vide le coffre. Chaque utilisation ultérieure afficheThe chest is empty. - Lever : chaque utilisation active ou désactive
bridge(un GameObject défini dans l’Inspector, masqué au départ) et afficheLever pulleddans le journal. - Interactor, sur le joueur : lorsque la barre d’espace est pressée (détectez-la avec
Keyboard.currentdu système d’entrée), trouvez les colliders à portée (reach, soit 1.5) avecPhysics.OverlapSphere, puis appelezInteract()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
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets