2014-12-08 6 views
1

проект моего единства из 3-х сцен, он может начинаться с любой сцены. Каждая сцена имеет GameObject, которые содержат сценарий под названием isFirstSceneLoaded, поскольку скрипт, называемый всем, что ему нужно сделать, это проверить, является ли эта сцена первой, которая будет загружена из игры. Так, например, у меня есть bool, называемый isFirstScene, и его первоначально установленный на нет, но когда первый скрипт Start(), я устанавливаю его в true. Так что теперь, когда я переключу сцену, этот bool будет равен true.Доступ к тому же булевому из разных сцен

как я могу это сделать?

ответ

1

сделать статический класс

public static class FirstSceneLoaded 
{ 
    private static bool isFirstScene = false; 

    public static void setBool(String sceneName) 
    { 
     if(sceneName == "first") 
      isFirstScene = true; 
    } 
} 

Поскольку класс является статичным, будет только один экземпляр его, и он будет существовать на протяжении всего выполнения игры.

Вызов его как этот

void Start() 
{ 
    FirstSceneLoaded.setBool(Application.loadedLevelName); 
} 
1

Вы можете сделать это двумя способами 1) сделать пустой объект разместить скрипт в нем, который имеет логическое значение в нем, и просто не разрушающих его на нагрузке .. 2) вы можете создать скрипт с классом IsSceneLoaded удалить наследование от моно поведения и сделать статическую функцию (не забудьте удалить обновления и запуска функции)

public static bool GetBool() {// declare static bool in the class let's say its name 
DidLoad return DidLoad; } 

// если вы хотите функцию, чтобы установить его

государственной статической силы SetBool (BOOL newval) {DidLoad = newval; }

либо пути должны работать хорошо, если это не комментировать мой ответ, если вы не хотите, чтобы добавить игровые объекты просто использовать второй: P

+1

Можно также сохранить значение в PlayerPref – marsh

+0

Да, что, вероятно, было бы лучше –

Смежные вопросы