Menu
CoddyTech

Укус охотников

Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 63 из 71.

challenge icon

Задание

Средне

Заставьте охотников кусать игрока и отбрасывать его.

  1. В Hunter добавьте [SerializeField] private float knockback = 12f; и void OnCollisionEnter(Collision collision).
  2. Внутри, когда выполняется collision.gameObject.TryGetComponent(out Health health), вызовите health.TakeDamage(1);.
  3. Затем оттолкните игрока: away — от охотника к игроку, установите y равным 0 и выполните collision.rigidbody.AddForce(away.normalized * knockback, ForceMode.Impulse);.

Нажмите «Играть» и посмотрите, как долго вы продержитесь. Затем нажмите «Проверить».

Попробуйте сами

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);
    }
}

Все уроки раздела Физика и игровой процесс

Потренируйтесь самостоятельно: Песочница Unity