Повторение: FindNearest
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 36 из 50.
Задание
СреднеРобот-уборщик собирает драгоценные камни, а затем отправляется на зарядку. Gem и ChargePad — пустые скрипты-маркеры (готовые), а у робота есть MoveTo(point), которая перемещает его к точке со скоростью speed и возвращает true, когда он достигает её.
- В
Helpers.csнапишите статический классHelpersс обобщённым методомFindNearest<T>(IEnumerable<T> items, Vector3 from)для любого типа компонента. Метод возвращает объект, чья позиция ближе всего кfrom, или null, если объектов нет. - В
Robot.csкаждый кадр робот направляется к ближайшему драгоценному камню на сцене, отталкиваясь от своего текущего положения, и уничтожает его, когда добирается до него. - Когда драгоценных камней не останется, робот направляется к ближайшему
ChargePad. По прибытии он один раз выводит в журнал сообщениеChargingи остаётся там.
Используйте FindNearest и для драгоценных камней, и для зарядных площадок. Нажмите Играть, понаблюдайте за роботом, затем нажмите Проверить.
Попробуйте сами
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: ближайший к точке элемент или null
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыСовместная работа компонентовПовторение: модульная турель4Сериализованные данные
Сериализуемые классыСписки в InspectorПеречисления в InspectorПовторение: таблица лута2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействия5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиВолны как данныеПовторение: база предметов8Переиспользуемый код
Методы расширенияОбобщённый синглтонОбобщённые вспомогательные методыПовторение: FindNearest