Menu
CoddyTech

Итог: пул пуль

Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 49 из 64.

Пул объектов хранит отключённые объекты наготове, а не уничтожает их. Здесь пули танка берутся из ObjectPool в Unity и возвращаются обратно после каждого выстрела.

challenge icon

Задание

Средне

Сделай так, чтобы танк стрелял пулями из пула.

  1. В Awake класса Tank создай ObjectPool<Bullet>: включай пулю при получении, выключай при возврате, уничтожай при удалении из пула; maxSize: 4.
  2. При нажатии пробела получай пулю, размещай её на 1 единицу впереди танка и передавай ей пул.
  3. 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 секунд
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Архитектура игр в Unity

Потренируйтесь самостоятельно: Песочница Unity