- Как отметил @Hellium в комментариях, если ничто не ссылается на них, то ничто не может их использовать.Если ваш менеджер / утилита содержит ссылки на все из них, вам просто нужно загрузить его.Обычный способ сделать это - просто использовать Resources.Load с жестко заданным путем к prefab / ScriptableObject утилиты.
- Unity уничтожает все объекты сцены при загрузке сцены.DontDestroyOnLoad предотвращает уничтожение определенного объекта.ScriptableObjects не являются объектами сцены, поэтому на них не влияет ни одна из этих вещей.
Я прочитал в документации, что вам нужно немедленно уничтожить эти объекты, чтобы предотвратить утечки памяти.Нужно ли добавлять это в OnDisable или что-то подобное, чтобы убить себя, когда закончите?
Нет, и Unity действительно будет жаловаться, если вы попытаетесь это сделать.ScriptableObject.OnDisable вызывается только когда он уничтожается движком.Это не то же самое, что MonoBehaviour, где вы можете включать и отключать его по своему усмотрению.
Я намерен снова использовать те же объекты сценариев, когда игра открывается, я просто не был уверен, было ли это совершенно необходимоубивайте объекты каждый раз, когда игра закрывается.
Когда вы снова загрузите игру, утилита / менеджер загрузит те же ссылки, что и в первый раз.
Я не уверениз того, как вы это сформулировали, но некоторые люди видят, как это работает в редакторе (Unity отменяет все изменения объектов сцены, когда вы выходите из режима воспроизведения, но ScriptableObjects обычно являются активами, которые не затрагиваются, поэтому их данные сохраняются), и они ошибочнодумаю, что он работает так же, как в сборке.Это не.При сборке все значения ваших префабов / ScriptableObjects / других ресурсов фиксируются. Каждый раз, когда вы запускаете эту сборку, вы начинаете с тех же значений, что и при сборке, независимо от изменений, которые вы внесли в прошлый раз, когда вы запускали игру.,Вы не можете просто использовать ScriptableObjects как простой способ сохранить материал во время выполнения (хотя было бы здорово, если бы вы могли).