Справочники Unity C# DontDestroyOnLoad

Что такое DontDestroyOnLoad в Unity C#?

Метод DontDestroyOnLoad используется для предотвращения уничтожения объекта при загрузке новой сцены. Это полезно для сохранения данных, которые должны оставаться неизменными на протяжении всего игрового процесса, таких как настройки игрока, музыка или состояния игры.


Этот метод применяется к объекту, к которому прикреплен скрипт. После вызова DontDestroyOnLoad объект становится «персистентным» и сохраняется при переходе между сценами. Однако такие объекты нужно контролировать, чтобы избежать дублирования при возврате к сценам, где они создавались.


Особенности использования метода DontDestroyOnLoad:
  1. Применяется только к корневым объектам или объектам верхнего уровня.
  2. Помогает хранить данные, такие как счет игрока, настройки звука, текущий уровень.
  3. Требует внимательного управления, чтобы предотвратить ошибки при повторной загрузке сцен.


using UnityEngine;

public class GameManager : MonoBehaviour
{
    void Awake()
    {
        // Делаем объект несокрушимым при загрузке новых сцен
        DontDestroyOnLoad(gameObject);
    }

    void Start()
    {
        Debug.Log("Объект GameManager сохранен между сценами.");
    }
}


В приведенном примере скрипт GameManager делает объект, на который он прикреплен, персистентным. Это может быть полезно для сохранения игровой логики, которая должна работать на протяжении всего сеанса игры.


Необходимо помнить, что использование DontDestroyOnLoad увеличивает количество активных объектов в игре. Убедитесь, что вы правильно удаляете или заменяете такие объекты при необходимости, чтобы избежать утечек памяти или дублирования логики.

Комментарии
Добавить комментарий

Пока комментариев нет