Доступ к моей панели "Параметры" из другого скрипта

Я создал клон понга со следующим: Главное меню (Новая игра, Параметры, О программе, Выйти). Уровень 1 (можно нажать ESC, чтобы открыть панель меню паузы («Возобновить игру», «Параметры», «Выход в главное меню»).

До сих пор я дублировал свою панель параметров из сцены главного меню и вставлял ее в сцену уровня 1. Есть ли способ лучше? Могу ли я вызвать панель опций главного меню из сцены Уровня 1? Думаю, другой идеей было бы создание префаба Options?

Я хотел бы отсортировать его, прежде чем работать над своим меню опций (Звук ВКЛ / ВЫКЛ, Звук регулируется с помощью ползунка, Музыка ВКЛ / ВЫКЛ, Музыка регулируется с помощью ползунка) - надеюсь, я смогу реализовать это, чтобы оно охватывало все сцены.

Это, кстати, на C #, в Unity.


person Spykerwolf    schedule 16.05.2017    source источник
comment
варианты холста сборные - лучшая идея   -  person Lestat    schedule 17.05.2017


Ответы (1)


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

Например, вы можете сохранить и загрузить громкость звука следующим образом:

float mySoundVolume;

void OnDestroy(){
   PlayerPrefs.SetFloat("SoundVolume", mySoundVolume);
}
void Awake(){
   mySoundVolume = PlayerPrefs.GetFloat("SoundVolume");
   applyValuesToUI();
}

Вы можете узнать больше о PlayerPrefs здесь. https://docs.unity3d.com/ScriptReference/PlayerPrefs.GetFloat.html

person Neven Ignjic    schedule 16.05.2017
comment
Отлично, спасибо, чувак! Я думаю, вот как они переносят ваши очки и т. Д., Когда вы начинаете новый уровень (сцену)? - person Spykerwolf; 17.05.2017
comment
Да, в значительной степени. Это определенно самый простой способ сделать это. Если вы ищете более продвинутое сохранение пользовательских данных (например, возможность легко передавать их по сети, чтобы сохранить некоторые более сложные типы данных), вы можете изучить этот ресурс assetstore.unity3d.com/en / #! / content / 768 (Вы можете найти что-то гораздо более дешевое или даже бесплатное, что подходит ваши потребности, но у меня есть опыт работы с этим, и я могу поручиться за это). Он работает почти так же, как PlayerPrefs, но с большим количеством опций. В любом случае вы должны сначала изучить PlayerPrefs, всегда полезно знать, работаете ли вы над чем-то простым. - person Neven Ignjic; 19.05.2017