Завантаження нової сцени знищує всі поточні об’єкти сцени. Об'єкт виклику. DontDestroyOnLoad to зберегти об'єкт під час завантаження сцени. Якщо цільовий об’єкт є компонентом або GameObject, Unity також зберігає всіх дочірніх елементів Transform.
Просто зробити GameObject дочірнім для будь-якого іншого GameObject у сцені, яку ви не назвали DontDestroyOnLoad. Потім його буде знищено під час зміни сцени, і вам не доведеться знищувати його вручну. Якщо ви знову передумаєте, просто нехай це знову не буде дитиною.
DontDestroyOnLoad — це лише об’єкти, які переміщуються від сцени до сцени. Є кілька способів доступу до них. Один – просто створіть сценарій із самою статичною змінною, і ви можете просто посилатися на цей сценарій через цю змінну. Інший поширений спосіб полягає в тому, що ви просто знаєте ім'я об'єкта і знаходите його.
Перемістіть GameObject з його поточної сцени до нової сцени. Ви можете лише переміщувати кореневі GameObjects з однієї сцени в іншу. Це означає, що GameObject, який потрібно перемістити, не повинен бути дочірнім для будь-якого іншого GameObject у своїй сцені. Це працює лише з GameObjects, які переміщуються до Сцени, яка вже завантажена (додатково).
Не руйнуйте цільовий об’єкт під час завантаження нової сцени. Завантаження нової сцени знищує всі поточні об’єкти сцени. Об'єкт виклику. DontDestroyOnLoad для збереження об’єкта під час завантаження сцени. Якщо цільовий об’єкт є компонентом або GameObject, Unity також зберігає всіх дочірніх елементів Transform.
Запуск викликається у кадрі, коли сценарій увімкнено безпосередньо перед першим викликом будь-якого методу оновлення. Подібно до функції Awake, Start викликається рівно один раз протягом життя сценарію. однак, Awake викликається під час ініціалізації об’єкта сценарію, незалежно від того, увімкнено сценарій чи ні.