Привет, я делаю игру на основе меню пиццы, и у меня есть много объектов в моей сцене menuCard, где к ним прикреплено Не уничтожать при загрузке, так что я могу переместить их на следующий экран, но когда я хочу вернуться к menuCard Scene Я не хочу, чтобы объект, который не разрушается при загрузке, был прикреплен

Карточка меню => Где все мои предметы - сцена 1 => где я хочу переместить их на следующий экран.

1
Imran Iqbal 8 Окт 2018 в 22:01

2 ответа

Лучший ответ

Один из подходов - сохранить ссылки на экземпляры DontDestroyOnLoad и удалить дубликаты во время создания. Просто добавьте этот скрипт к объекту в сцене, который вы не хотите уничтожать, и установите уникальный идентификатор в поле инспектора.

    public class DontDestroyOnLoad : MonoBehaviour 
    {
        [SerializeField] string _id;

        public static DontDestroyOnLoad Get(string id)
        {
            var instances = FindObjectsOfType<DontDestroyOnLoad>();
            return instances.FirstOrDefault(i => i._id == id);
        }

        void Awake()
        {
            if (string.IsNullOrEmpty(_id))
            {
                _id = Guid.NewGuid().ToString();
            }

            var instance = Get(_id);

            if (instance != null && instance != this)
            {
                Destroy(instance.gameObject);
            }
            DontDestroyOnLoad(gameObject) ;
        }
    }
0
Mikhail Deyman 21 Авг 2019 в 04:49

Не пытайтесь отключить DontDestroyOnLoad. Разделите их на отдельную сцену и в первую очередь загрузите отдельно от menuCard Scene.

0
Leo Bartkus 8 Окт 2018 в 19:14