У меня есть сценарий, который запускается из моей игровой сцены, которая скрывает объект gameObject на моей сцене меню. Однако каждый раз, когда игра закрывается и снова открывается, gameObject в моей сцене меню возвращается к активному. Я хочу, чтобы gameObject был скрыт, чтобы оставаться скрытым даже через перезагрузку игры. Это тот код, который у меня есть на данный момент.PlayerPrefs для сохранения setActive state
DontDestroyOnLoad(gameObject);
SceneManager.LoadScene("sceneSelectBeta");
GameObject[] gameObjectArray = GameObject.FindGameObjectsWithTag ("Level2Block");
foreach(GameObject go in gameObjectArray) {
go.SetActive (false);
PlayerPrefs.????? ("?????", ?????);
}
DestroyObject(gameObject);
Я использую PlayerPrefs, чтобы сохранить другую информацию в моем проекте, но я не уверен, как реализовать это в данном случае, любая помощь или совет будет весьма признателен.
UPDATE 2.
Текущий код с playerprefs, компилирует, но до сих пор не сохраняет состояние объекта.
PlayerPrefs.SetInt ("Set Active", 1);
DontDestroyOnLoad(gameObject);
GameObject[] gameObjectArray = GameObject.FindGameObjectsWithTag ("Level2Block"); //find game object with tag
foreach(GameObject go in gameObjectArray) {
go.SetActive (false);
bool active = PlayerPrefs.GetInt("Set Active" , 1) == 0;
}
Меня раздражает, что PlayerPrefs не поддерживает сохранение значения bool, поэтому я обычно заканчиваю тем, что пишу обертку, которая определяет True и False как 1 и 0, поэтому я все еще могу использовать логику bool с классом и расширить его с помощью методов SetBool и GetBool. – Cody
Спасибо за совет @ Коди в тот момент, что я должен попытаться сохранить состояние объекта, включен в UPDATE 2, он будет компилироваться без ошибок, но все же объект снова включен, когда игра перезагружается. – Ethranes
Когда Unity загружает сцены, он загружает его, как только он был сохранен перед компиляцией. Вы не сможете сохранить активный игровой объект или нет. Вам понадобится загрузить код где-нибудь, чтобы проверить состояние с PlayerPrefs и вручную установить его. – Cody