Разберемся, как создать систему обнаружения в Unity (Dot Product Detection Solution)

Принимая это во внимание, мы обсудили процесс создания и реализации простой системы обнаружения в Unity здесь. Итак, если вы новичок в Unity и хотите начать с чего-то простого, но в то же время стимулирующего умственную деятельность, то вот вам подсказка! Мы подробно рассказали о системе обнаружения в следующих сегментах, как показано в видео.

Ресурсы:

Видеоурок: https://www.youtube.com/watch?v=MB7d3MdVHwU

Полный курс: https://academy.eincode.com/courses/the-complete-unity-guide-3d-beginner-to-rpg-game-dev-in-c

Система обнаружения – понимание области применения

Как обсуждалось в этом видео, сфера действия системы обнаружения довольно проста — рассмотрим два объекта, игрока и врага. Представьте себе небольшую широкую область вокруг вражеского объекта, в которой он чувствителен к приближению объекта игрока. Назовем эту область дальностью обнаружения объекта противника.

Теперь цель этой системы обнаружения состоит в том, чтобы отображать сообщение на экране каждый раз, когда объект игрока входит в зону обнаружения объекта противника.

Система обнаружения проверит нарушение указанной дальности обнаружения как по дальности, так и по углу.

Чтобы скачать стартовый проект этой системы обнаружения, перейдите по ссылке, указанной в описании видео.

Чтобы понять, как открыть файл в Unity, обратитесь к [0:33] видео. Если проект не открывается для вас таким образом, вы также можете получить к нему доступ через активы. Чтобы понять, как это сделать, перейдите к [1:25] видео.

Создание и вызов метода Player

Для начала нам нужно создать метод искать игрока в скрипте вражеского объекта. Прежде чем мы это сделаем, давайте разберемся с несколькими основными понятиями, касающимися методов или функций в Unity:

  • Метод — это блок кода, который программист может создать, а затем вызывать в следующем месте программы.
  • Синтаксис метода в Unity(C#):
    ‹тип возвращаемого значения› ‹имя метода› (‹аргументы›)
    {
    / / кодовый блок

Процесс определения метода поиск игрока для этой системы обнаружения был продемонстрирован в [3:20] видео.

Понимание позиций игрока и противника

Для нас важно сначала понять относительное положение объекта игрока относительно вражеского объекта, прежде чем определять наш метод «искать игрока». Для этого нам нужно визуализировать как игрока, так и вражеские объекты в трехмерном векторном пространстве.

Чтобы вычислить евклидово расстояние между объектом-врагом и объектом-игроком, нам нужно вычесть координаты объекта-врага из координат объекта-игрока. Это упражнение подробно описано в [5:19] видео.

Для большей наглядности выполняйте эту визуализацию либо на чертежном инструменте, либо вручную на листе бумаги. В качестве альтернативы, чтобы улучшить визуализацию в самом Unity, используйте вид сверху вниз.

Проверка величины вектора

Для каждого случая, когда мы хотим определить расстояние между объектом игрока и объектом противника, мы должны вычислить величину разности их соответствующих векторов. Для этой системы обнаружения вектор, представляющий, как добраться до объекта игрока от объекта противника, обозначается в сценарии как toPlayer. Об этом говорится в [8:07] видео.

Если величина этого вектора toPlayer окажется меньше или равна заданному радиусу обнаружения, тогда наша система обнаружения сработает и впоследствии отобразит сообщение на нашем экране. В этом видео радиус обнаружения установлен равным 10 единицам. Работа системы обнаружения была продемонстрирована в [9:32] видео.

Проверка угла

Наша система обнаружения теперь может предупреждать нас всякий раз, когда объект игрока входит в предопределенный радиус обнаружения вражеского объекта. Таким образом, мы достигли цели, которую поставили перед собой в этом видео. Ну не совсем так.

Хотя в настоящее время нет сомнений в работе нашей системы обнаружения, в ней есть определенная загвоздка — она определяет только расстояние до объекта игрока, а не его угол.

Чтобы наша система обнаружения была полностью точной, нам нужно, чтобы она сканировала всю полукруглую или круглую часть вокруг вражеского объекта, а не просто проверяла наличие объекта игрока в одном направлении. Вы можете добиться этого, определив простой оператор в своем сценарии. Чтобы понять это, обратитесь к [10:58] видео.

С этой реализацией ваша система обнаружения теперь завершена.

Заключение

Если эта простая система обнаружения возбудила ваше любопытство, то вам следует рассмотреть возможность выбора Полного руководства Unity 3D для начинающих разработчиков RPG игр на C#, предлагаемого Eincode. Этот курс включает в себя одни из самых захватывающих и практических ресурсов.

Этот курс, курируемый опытным инженером-программистом и внештатным разработчиком Филипом Джергой, начинается с основ. Затем он постепенно прогрессирует, чтобы в конечном итоге провести своих подписчиков через путешествие по разработке собственной ролевой игры с использованием Unity 2020 и C #.