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