我用以下方法创建了一个pong克隆: 主菜单(新游戏,选项,关于,退出)。 Level1(能够按ESC键打开暂停菜单面板(恢复游戏,选项,退出主菜单)。
到目前为止,我已从主菜单场景复制了我的选项面板,并将其粘贴到Level1场景中。有没有更好的方法呢?我可以从我的Level1场景调用主菜单选项面板吗?我想创建一个Options预制件会是另一个想法吗?
我希望在我选择菜单之前对其进行排序(声音开/关,声音可通过滑块调节,音乐开/关,音乐可通过滑块调节) - 希望我能实现它,因此它涵盖了所有场景。
顺便说一下,这是在C#中。
答案 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