Укус охотников
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 63 из 71.
Задание
СреднеЗаставьте охотников кусать игрока и отбрасывать его.
- В
Hunterдобавьте[SerializeField] private float knockback = 12f;иvoid OnCollisionEnter(Collision collision). - Внутри, когда выполняется
collision.gameObject.TryGetComponent(out Health health), вызовитеhealth.TakeDamage(1);. - Затем оттолкните игрока:
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);
}
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка4Корутины
InvokeInvokeRepeating, CancelInvokeВаша первая корутинаЦиклы в корутинахОстановка корутинПовторение: обратный отсчёт10Проект: Побег с арены
АренаОхотники2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Монетная гонка
Катящийся шарСобираем монетыПотренируйтесь самостоятельно: Песочница Unity