Асинхронные операции и выход из сцены
Проверим, остался ли компонент включён после загрузки.
В команде для такой проверки есть awaitSceneScope. В компоненте используем awaitComponentScopeResource, если результат загрузки нужно освободить.
const spawned = await this.awaitComponentScopeResource(
this.node.spawnPrefab({
prefabId: this.config.prefabId,
localId: 'preview',
}),
(resource) => resource.dispose(),
);
if (!spawned) return;
spawned.node.setVisible(true);
Если компонент успел отключиться, метод освободит префаб и вернёт undefined.
Владелец активенОперация завершилась → результат используется
Владелец удалёнОперация завершилась → ресурс освобождён → продолжение пропущено
В своём onDetach вызываем super.onDetach(), чтобы SDK остановил анимации, добавленные через ownTween.