Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 2.73 KB

File metadata and controls

44 lines (33 loc) · 2.73 KB

Despawner

Назначение: Утилита для удаления объектов со сцены. Умеет определять, находится ли объект в пуле (и возвращать его туда), или его нужно просто уничтожить (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, когда здоровье врага опустится до нуля. Враг исчезнет, а на его месте появится взрыв.

Пример (Код)

public void OnProjectileHitTarget(GameObject projectile)
{
    // Безопасно удаляем снаряд: если он из пула - вернется туда, иначе Destroy.
    Despawner.DespawnObject(projectile);
}

См. также