Повторение: сторожевой пёс
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 55 из 63.
Задание
СреднеСторожевая собака не подпускает незнакомцев к своей будке. Напиши скрипт Dog. В Инспекторе для неё задаются player, kennel (красный коврик перед будкой), speed (3.5), guardRange (6) и bite (5). Скрипты Player и Health уже готовы: стрелки толкают игрока, а в скрипте Health игрока есть публичный метод TakeDamage(int amount).
- Пока игрок находится ближе к будке, чем на расстояние
guardRange, считая по земле, собака бежит к игроку. Расстояние измеряется от будки, а не от собаки. - Иначе собака бежит обратно к будке и останавливается, когда оказывается ближе чем на 0.3 к ней.
- Собака бежит, задавая скорость своего Rigidbody равной
speedпо земле и сохраняя скорость по оси y. - Когда собака сталкивается с игроком (с тегом
Player), скрипт Health игрока наносит ему 1 единицу урона, а игрок получает импульс силойbite, направленный от собаки по земле.
Нажми Play и подойди к будке, затем нажми Check.
Попробуйте сами
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()
{
// охранять конуру: преследовать игрока, если он рядом с ней, иначе возвращаться домой
}
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Погоня за монетами
Катящийся мячМонеты для сбора3Триггеры
Триггерные коллайдерыOnTriggerEnterПодбираемые предметыЗоны гибелиВход и выходПовторение: ключ и дверь6Рейкасты
Physics.RaycastRaycastHitПроверка земли с помощью лучаСлои и LayerMaskЛиния видимостиOverlapSphere и SphereCastПовторение: лазерная растяжка9Враги
Преследование игрокаПреследование в пределах досягаемостиПатрулирование и преследованиеЗдоровье и уронОтбрасываниеПовторение: сторожевой пёс