Makar Osokin

+56
с 2016
0 подписчиков
27 подписок

Это вполне себе живая женщина, даже не бабка, но очень старалась. (:

1

Сойдёмся на том, что на уровне дизайна это не всем очевидно. Юньки решили, что так правильно, нам остаётся просто не забывать об этом.

1

С развитием PackageManager это уже не один кусок, а много маленьких кусочков, пляшем дальше.

1

Можно на этапе сборки проекта все префабы отключать. Просто держать их выключенными в редакторе не очень удобно - ломаются превьюшки и нужно постоянно его включать при редактировании.

2

Если объект можно безнаказанно включать после выключения без потери стейта - значит это не удаление ни разу и не нужно это себе так представлять.
В том и проблема, что Юнити пытаются навесить поверх очевидного поведения объектов C# какое-то своё, не очень очевидное поведение. И если с особенностям проверки GameObject на null можно смириться, то в случае с OnDestroy/OnTriggerExit - нет, не надо так.

Выключен, но не уничтожен же. Когда объект просто выключен - он живёт, у него можно дёргать методы, менять его состояние. Логично ожидать, что и OnDestroy будет работать. Ну или хотя бы настройку отдельную для такого поведения нужно добавить.

1

Самый правильный вариант использования Zenject.

1

Эх, если бы так можно было сделать... ):
Но они уже сделали RenderPipeline, ждём GameObjectPipepline когда-нибудь, тогда заживём.

У префаба вызвать SetActive(false), чтобы он инстанцировался уже выключенным.

1