【发布时间】:2019-06-13 21:10:28
【问题描述】:
我正在使用切换按钮来播放和停止音乐,我正在使用 playerPrefs 来保存状态。切换按钮正在播放或停止音乐,但是当我重新加载场景时它变得一团糟。即使切换按钮打开,音乐也会继续播放(意味着关闭音乐)。
对于玩家偏好。我正在使用 Player prefs Manager 脚本:
public static void SetMusicOnOFF(int value)
{
PlayerPrefs.SetInt(Music, value);
}
public static int GetMusicOnOff()
{
return PlayerPrefs.GetInt(Music, 5);
}
对于我正在使用的切换按钮:
class MusicToggleButton : MonoBehaviour
{
Toggle t;
// Use this for initialization
void Start ()
{
t = GetComponent<Toggle>();
if (PlayerPrefsManager.GetMusicOnOff() == 1)
{ //ERROR CALLING THE METHOD TO CHANGE MUSIC TO ON
t.isOn = true;
}
}
按下切换按钮时,我正在调用 StartStopMusicPlayer 方法:
class MusicPlayer : MonoBehaviour
{
public static bool stopPlayer;
// Use this for initialization
void Awake ()
{
if (PlayerPrefsManager.GetMusicOnOff() == 2)
{
audioSource.Play();
audioSource.playOnAwake = true;
audioSource.loop = true;
}
else
{
audioSource.Stop();
}
}
public void StartStopMusicPlayer()
{
stopPlayer = !stopPlayer;
if (stopPlayer)
{
PlayerPrefsManager.SetMusicOnOFF(1);
audioSource.Stop();
}
else
{
PlayerPrefsManager.SetMusicOnOFF(2);
audioSource.Play();
}
}
}
音乐播放器类在重新加载时不会破坏。但是 MusicToggleButton 类在重新加载时被销毁。 感谢您的帮助。
【问题讨论】:
-
音频设置为在唤醒时播放。我会说不要在清醒状态下玩,但如果需要,可以将其设置为播放。
-
在加载场景时可以检查切换按钮的默认值吗?也许您可以通过添加
else { t.isOn = false; }来确保MusicToggleButton中切换按钮的值 -
谢谢你们的回答。是的,托马斯,我没有把它设置成清醒状态。我想我找到了问题所在。当我重新加载场景时。在清醒时,我正在改变 t.isOn=true。那就是调用将音乐从关闭更改为打开的方法。因为当场景加载切换状态为关闭并且内部清醒时,我将其更改为打开。把事情搞砸了。我认同。现在我该怎么办?
-
**我在谷歌上搜索过。这是切换的问题。我应该将切换按钮更改为普通按钮。谢谢你们的时间。