Menu
CoddyTech

Rückblick: Wachhund

Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 55 von 63.

challenge icon

Aufgabe

Mittel

Ein Wachhund hält Fremde von seiner Hundehütte fern. Schreibe das Skript Dog. Im Inspector werden ihm player, kennel (die rote Matte vor der Hundehütte), speed (3.5), guardRange (6) und bite (5) zugewiesen. Die Skripte Player und Health sind bereit: Die Pfeiltasten schieben den Spieler, und die Health des Spielers hat eine öffentliche Methode TakeDamage(int amount).

  • Solange der Spieler, über den Boden gemessen, näher als guardRange an der Hundehütte ist, läuft der Hund auf den Spieler zu. Die Reichweite wird von der Hundehütte aus gemessen, nicht vom Hund.
  • Andernfalls läuft der Hund zurück zur Hundehütte und bleibt stehen, sobald er höchstens 0.3 von ihr entfernt ist.
  • Der Hund bewegt sich, indem er die Geschwindigkeit seines Rigidbody auf speed über den Boden setzt und dabei seine y-Geschwindigkeit beibehält.
  • Wenn der Hund mit dem Spieler zusammenstößt (mit dem Tag Player), erleidet die Health des Spielers 1 Schadenspunkt, und der Spieler erhält einen Impuls der Stärke bite direkt vom Hund weg, über den Boden.

Drücke Play und gehe zur Hundehütte, dann Check.

Probier es selbst

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()
    {
        // Bewache die Hundehütte: Verfolge den Spieler, wenn er sich ihr nähert, oder kehre zurück
    }
}

Alle Lektionen in Physik und Gameplay