Récapitulatif : chien de garde
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 55 sur 63.
Défi
MoyenUn chien de garde éloigne les étrangers de sa niche. Écris le script Dog. Dans l’Inspector, assigne-lui player, kennel (le tapis rouge devant la niche), speed (3.5), guardRange (6) et bite (5). Les scripts Player et Health sont prêts : les flèches poussent le joueur, et le composant Health du joueur possède une méthode publique TakeDamage(int amount).
- Tant que le joueur est à moins de
guardRangede la niche, en mesurant la distance au sol, le chien court vers le joueur. La portée est mesurée depuis la niche, et non depuis le chien. - Sinon, le chien retourne à la niche et reste immobile dès qu’il se trouve à moins de 0.3 de celle-ci.
- Le chien court en réglant la vitesse de son Rigidbody à
speedau sol, tout en conservant sa vitesse sur l’axe y. - Quand le chien heurte le joueur (qui porte le tag
Player), le composant Health du joueur lui inflige 1 point de dégâts, et le joueur reçoit immédiatement une impulsion debitedirectement à l’opposé du chien, au sol.
Appuie sur Play et approche-toi de la niche, puis clique sur Check.
Essayez vous-même
using UnityEngine;
public class Dog : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private Transform kennel;
[SerializeField] private float speed = 3.5f;
[SerializeField] private float guardRange = 6f;
[SerializeField] private float bite = 5f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// protège la niche : poursuis le joueur s'il s'en approche, sinon rentre à la maison
}
}
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserZones mortellesEntrée et sortieRécapitulatif : clé et porte6Lancers de rayons
Physics.RaycastRaycastHitVérifier le sol avec un rayonLayers et LayerMaskLigne de vueOverlapSphere et SphereCastRécapitulatif : fil-piège laser9Ennemis
Poursuivre le joueurPoursuivre à portéePatrouiller et poursuivreSanté et dégâtsReculRécapitulatif : chien de garde