Итог: пул пуль
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 49 из 64.
Пул объектов хранит отключённые объекты наготове, а не уничтожает их. Здесь пули танка берутся из ObjectPool в Unity и возвращаются обратно после каждого выстрела.
Задание
СреднеСделай так, чтобы танк стрелял пулями из пула.
- В
AwakeклассаTankсоздайObjectPool<Bullet>: включай пулю при получении, выключай при возврате, уничтожай при удалении из пула;maxSize: 4. - При нажатии пробела получай пулю, размещай её на 1 единицу впереди танка и передавай ей пул.
Bulletлетит в направлении +z со скоростьюspeed; пуля возвращается в пул черезlifeсекунд после каждого выстрела или при попадании вTarget(вызовиHit()).
Нажми «Играть» и стреляй по обеим целям. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// Лететь вперёд; возвращаться в пул при попадании в Target или через life секунд
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыКомпоненты работают вместеПовторение: модульная турельПовторение: спаренная пушка4Сериализованные данные
Сериализуемые классыСписки в инспектореПеречисления в инспектореПовторение: таблица добычиПовторение: определяем добычу2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействияПовторение: ближайший в пределах досягаемости5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиСохраняем ветерВолны как данныеПовторение: база предметовПовторение: покупка в магазинеПотренируйтесь самостоятельно: Песочница Unity