访问我的“选项”'另一个脚本的面板

时间:2017-05-16 22:08:40

标签: unity3d unity2d

我用以下方法创建了一个pong克隆: 主菜单(新游戏,选项,关于,退出)。 Level1(能够按ESC键打开暂停菜单面板(恢复游戏,选项,退出主菜单)。

到目前为止,我已从主菜单场景复制了我的选项面板,并将其粘贴到Level1场景中。有没有更好的方法呢?我可以从我的Level1场景调用主菜单选项面板吗?我想创建一个Options预制件会是另一个想法吗?

我希望在我选择菜单之前对其进行排序(声音开/关,声音可通过滑块调节,音乐开/关,音乐可通过滑块调节) - 希望我能实现它,因此它涵盖了所有场景。

顺便说一下,这是在C#中。

1 个答案:

答案 0 :(得分:1)

您无法直接更改其他场景中的值,因为此时实例不存在,但您可以使用PlayerPrefs在现有场景中保存数据,在加载场景时可以在UI中加载该数据。

例如,您可以像这样保存和加载音量:

float mySoundVolume;

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

您可以在此处详细了解PlayerPrefs。 https://docs.unity3d.com/ScriptReference/PlayerPrefs.GetFloat.html