Как исправить непреднамеренный сцена buildIndex -1 в Unity - PullRequest
1 голос
/ 31 марта 2019

По сути, после тестирования нескольких прототипов уровней, я решил придерживаться своей текущей игровой идеи, поэтому я начал создавать GameManager для управления потоком уровней и т. Д. У меня нет никаких дополнительных библиотек или пакетов ресурсов.используется за пределами по умолчанию, но по какой-то причине buildIndex всех моих сцен равен -1, который я узнал в соответствии с API, означает, что они должны быть загружены через AssetBundle.Теперь я ничего не могу загрузить с помощью SceneManager и не знаю, как двигаться дальше.У меня временно была папка 2d-extras-master в проекте, так как я предполагал, что буду ее использовать, но удалил ее, поняв, что она мне не понадобится.Кто-нибудь знает, как сбросить buildIndices моих сцен к значениям в настройках сборки?Любая / все помощь очень ценится!

Редактировать: я должен также упомянуть, что последняя добавленная мной сцена (когда у меня еще был 2d-extras-manager) все еще сохранила нормальный buildIndex 0

Edit # 2: Итак, я обнаружил, что могу получить доступ к buildIndice других сцен между собой.Только когда я пытаюсь получить доступ к buildIndices из моей сцены MainMenu, что-то не работает

Правка # 3: я нашел исправление, но оно не обязательно отвечает на вопрос.Я обнаружил, что могу заставить функцию LoadScene работать, если я знаю, что такое buildIndex, но если я ищу его по имени сцены, он возвращает -1.

напр.

// where 1 is the buildIndex of Scene "Main" in BuildSettings
// works
SceneManager.LoadScene(1);

// doesn't work
int index = SceneManager.GetSceneByName("Main").buildIndex; //returns -1
SceneManager.LoadScene(index);

// also doesn't work (Where current scene is buildIndex 0)
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);

1 Ответ

0 голосов
/ 31 марта 2019

В меню сборки, к которому можно перейти, щелкнув Файл в Unity Editor, вы можете упорядочить свои сцены и добавить их в поток, как на этом изображении

Я не уверен в этом, но я предпочитаю, когда вы не назначили сцену потоку, она получает sceneIndex = -1.Итак, загрузите сцену, перейдите в BuildSettings, добавьте ее в процесс сборки, сделайте то же самое для всех них.Я думаю, что таким образом вы можете решить это.

...