Menu
CoddyTech

Der Biss der Jäger

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

challenge icon

Aufgabe

Mittel

Lass die Jäger angreifen und den Spieler zurückstoßen.

  1. Füge in Hunter [SerializeField] private float knockback = 12f; und void OnCollisionEnter(Collision collision) hinzu.
  2. Rufe darin health.TakeDamage(1); auf, wenn collision.gameObject.TryGetComponent(out Health health) zutrifft.
  3. Stoße ihn dann weg: von away aus vom Jäger in Richtung Spieler, wobei y auf 0 gesetzt wird, und mit collision.rigidbody.AddForce(away.normalized * knockback, ForceMode.Impulse);.

Drücke „Spielen“ und schau, wie lange du durchhältst. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class Hunter : MonoBehaviour
{
    [SerializeField] private float speed = 3f;
    private Rigidbody rb;
    private Transform player;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        player = GameObject.FindWithTag("Player").transform;
    }

    void FixedUpdate()
    {
        Vector3 toPlayer = player.position - rb.position;
        toPlayer.y = 0f;
        Vector3 dir = toPlayer.normalized;
        rb.linearVelocity = new Vector3(dir.x * speed, rb.linearVelocity.y, dir.z * speed);
    }
}

Alle Lektionen in Physik und Gameplay

Übe selbstständig: Unity-Playground