Мне нужно было поподробней изучить управление объектом с помощью NavMesh, поэтому я вернулся к проекту Stealth game tutorial (ссылки на проект нет, осталось только видео):
Запустив урок у себя на компе, я обратил внимание, что когда бот забегает в комнату, в которой находится главный персонаж Итан, дверь перед ботом не открывается и он просто пробегает сквозь нее. Раньше я делал этот урок, но либо не обратил на это внимание, либо в Unity 4.x все работало (сейчас у меня Unity 5.6.0f3). В итоге сейчас я разбирался, в чем здесь проблема и как ее можно решить.
1. Согласно уроку, мы выбираем в окне Иерархии бота «char_robotGuard_001»
2. Присваиваем ему тэг «Enemy»
3. Скрипт для открытия дверей такой:
void OnTriggerEnter(Collider other)
{
// If the triggering gameobject is the player...
if (other.gameObject == player)
{
// ... if this door requires a key...
if (requireKey)
{
// ... if the player has the key...
if (playerInventory.hasKey)
{
// ... increase the count of triggering objects.
count++;
}
else
{
// If the player doesn't have the key play the access denied audio clip.
GetComponent<AudioSource>().clip = accessDeniedClip;
GetComponent<AudioSource>().Play();
}
}
else
{
// If the door doesn't require a key, increase the count of triggering objects.
count++;
}
}
// If the triggering gameobject is an enemy...
else if (other.gameObject.tag == Tags.enemy)
{
// ... if the triggering collider is a capsule collider...
if (other is CapsuleCollider)
{
// ... increase the count of triggering objects.
count++;
}
}
}
Проблема тут в строке else if (other.gameObject.tag == Tags.enemy). Настраивая объект char_robotGuard_001, мы присвоили ему тэг «Enemy», но у него добавлен коллайдер типа Сфера (для проверки «видимости» нарушителей в поле его зрения). Коллайдер типа Капсула (Capsule) относится к его дочернему объекту — char_robotGuard_body. Поэтому, чтобы проверка сработала, дочернему объекту также нужно присвоить тэг «Enemy».
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024
- WordPress: Ошибка в плагине WpDiscuz - 08.10.2024