You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Назначение: Утилита для удаления объектов со сцены. Умеет определять, находится ли объект в пуле (и возвращать его туда), или его нужно просто уничтожить (Destroy). Может автоматически спавнить другой объект перед исчезновением (например, эффект взрыва).
Поля (Inspector)
Поле
Описание
Despawn On Disable
Вызывать ли метод Despawn() автоматически, когда объект выключается (OnDisable).
Spawn Prefab On Despawn
(Опционально) Какой префаб заспавнить в точке объекта перед его исчезновением.
Spawn At This Transform
Спавнить эффект точно в координатах текущего объекта (иначе — в нуле).
API
Метод / Свойство
Описание
void Despawn()
Деспавнит этот объект: возвращает в пул или уничтожает. Перед этим спавнит эффект, если задан.
void DespawnOther(GameObject target)
Метод для вызова из UnityEvent. Деспавнит переданный в аргументах объект.
static void DespawnObject(GameObject target)
Статический метод. Корректно удалит/вернет в пул любой объект, переданный в аргументе.
Unity Events
Событие
Аргументы
Описание
OnDespawn
(нет)
Вызывается прямо перед тем, как объект исчезнет/уничтожится.
Примеры
Пример No-Code (в Inspector)
Повесьте Despawner на префаб врага. В Spawn Prefab On Despawn укажите префаб взрыва (VFX). Вызовите Despawner.Despawn() через UnityEvent, когда здоровье врага опустится до нуля. Враг исчезнет, а на его месте появится взрыв.
Пример (Код)
publicvoidOnProjectileHitTarget(GameObjectprojectile){// Безопасно удаляем снаряд: если он из пула - вернется туда, иначе Destroy.Despawner.DespawnObject(projectile);}