как переключаться между загруженными сценами - PullRequest
0 голосов
/ 09 апреля 2020

Я новичок в единстве и работаю над проектами. Я хочу работать с несколькими сценами.

некоторые из моих сцен похожи на меню параметров в игре.

на главном экране я хочу открыть сцену параметров, а когда я закончу, я хочу чтобы вернуться к моей основной сцене, и когда я вернусь, я хочу, чтобы все было сделано в основной сцене до того, как откроется сцена параметров

Я могу изменить сцены с помощью SceneManager, но он загружает экран как новый, как будто я это сделал ничего там можно переключаться между загруженными сценами без загрузки снова? Я думаю, что если это так; Я могу продолжить с прогресса в основной сцене, если это не так, как я могу продолжить свой прогресс (нужно ли сохранять все данные и когда сцена начинает загружаться из этих данных?)

Ответы [ 2 ]

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

Класс SceneManager предоставляет множество полезных способов управления вашими сценами. Вы можете найти документацию здесь .

Использование нескольких сцен для разделения вашей логики c - отличный подход, а использование опции LoadSceneMode.Additive при загрузке новой сцены позволяет загрузить одну сцену наряду с другим.

Чтобы достичь того, что вы хотите, вам примерно необходимо сделать следующее:

  1. Загрузить сцену из главного меню.
  2. Загрузить сцену параметров дополнительно с помощью вызова, подобного SceneManager.LoadScene("path/to/options/scene.unity", LoadSceneMode.additive).
  3. Передача управления вводом в другую сцену.
  4. Выгрузка сцены параметров, когда вы закончите с ней.
  5. Сцена главного меню будет загружен в течение всего времени, и вам не придется «запоминать» какие-либо значения или использовать DontDestroyOnLoad.

Альтернативный вариант - разместить все функции вашего меню в одном сцены и переключаться между несколькими холстами. Вы можете найти информацию об этом здесь .

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

вы можете создать класс со значениями, которые вы хотите сохранить, поместить его в игровой объект и использовать DontDestroyOnLoad (this.gameObject); поэтому объект не будет удален при загрузке новой сцены

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