Menu
CoddyTech

Récapitulatif : chien de garde

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 55 sur 63.

challenge icon

Défi

Moyen

Un 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 guardRange de 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 à speed au 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 de bite directement à 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