как использовать DontDestroyOnLoad? - PullRequest
0 голосов
/ 22 апреля 2020

Так что это, вероятно, довольно просто, но я никогда раньше не использовал DontDestroyOnLoad () и не знаю, что делать. У меня есть некоторые значения в скрипте, которые я хотел бы сохранить при переключении на другой экран, и я увидел, что DontDestroyOnLoad () может помочь мне с этим, но, похоже, не работает ее мой код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class data_transfer : MonoBehaviour
{
    DontDestroyOnLoad(transform.gameObject);
}

Я получаю это сообщение об ошибке: Assets\scripts\data_transfer.cs(7,43): error CS1001: Identifier expected Как я уже сказал, это, вероятно, относительно легко, но я новичок в Unity и C#, поэтому спасибо, если хотите помочь.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Согласно документации Unity :

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

Вам нужно заключить вызов DontDestroyOnLoad в функцию или в один из обратных вызовов MonoBehaviour , таких как Пробуждение или Запуск .

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyClass: MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
}
0 голосов
/ 22 апреля 2020

DontDestroyOnLoad - это метод. Вам просто нужно вызвать его внутри какого-то другого метода, например Awake или Start Например, например,

public class data_transfer : MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(transform.gameObject);
    }
}

Awake автоматически вызывается Unity при создании экземпляра GameObject, поэтому предотвратить разрушение вашего объекта при загрузке новой сцены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...