Я делаю 2D-игру, в которой мой персонаж может войти и выйти из разных комнат, так как каждая комната представляет собой другую сцену, мне нужно как-то сохранить своего персонажа каждая отдельная сцена, для этой цели единство предлагает DontDestroyOnLoad() Так что я использовал эту функцию всякий раз, когда я переключаю свои сцены, однако есть проблема с этим.Сохранить объект между сценами с помощью DontDestroyOnLoad Unity C#
Давайте предположим, что мои номера только 2, и они действительно просто глядя, как этот
Здесь, в этой схеме основной номер один, что вы начинаете игру в, она содержит уже порождал сборник персонажа. Как только мы пойдем во вторую комнату, мой персонаж будет спасен со всеми его хорошими вещами, однако, если мы вернемся к главной сцене/комнате, мы теперь увидим 2 персонажа. Зачем ? Поскольку наш начальный символ не уничтожается, когда загружаются разные сцены, и у нас также есть тот, который создается вместе с главной комнатой/сценой. Теперь это действительно противно, и я не знаю, как это исправить, у меня также есть одна и та же проблема с некоторыми сценариями, которые мне нужны в каждой отдельной сцене. Любая помощь приветствуется.
Я сделал именно второй вариант, однако им в поисках объекта, используя FindObjectsWithTag или некоторые другие функции, которые находят игру объекты, однако я знаю, что эти методы не являются действительно работают быстро, и если у меня есть много объектов, то при переключении между сценами много это не будет приятным опытом. Я поеду с первым вариантом, спасибо за мгновенный ответ! – Asimm
@Asimm Вы не будете использовать 'FindObjectsWithTag' для второго варианта, но вместо этого вы сделаете игрока одиночным (это будет также' DontDestroyOnLoad'). Одиночные или, скорее, новые экземпляры сами справлялись бы с их уничтожением. –