【发布时间】:2020-01-11 13:34:06
【问题描述】:
我是新人,我有一个问题 我正在制作一个有 2 个场景(主菜单场景和游戏场景)的游戏,我将音乐放在主菜单场景上。我制作了一个空的游戏对象,并在其中附加了音频源(音乐),并且还附加了这样的脚本:
第一个脚本
public static KeepTheMusicOn Instance;
void Awake()
{
if (!Instance)
Instance = this;
else
Destroy(this.gameObject);
DontDestroyOnLoad(this.gameObject);
}
使用该脚本,我可以在不重新启动音乐的情况下保持音乐在第二个场景中播放,并且在主菜单场景中,我有设置按钮来静音音乐,该按钮将运行我的第二个脚本。
第二个脚本:
public AudioSource mainMusic;
public void Update()
{
DontDestroyOnLoad(mainMusic);
}
public void MusicOnOff()
{
if (mainMusic.isPlaying)
{
mainMusic.Pause();
}
else
{
mainMusic.UnPause();
}
}
我的问题是当我开始游戏时,我在我的主菜单场景中我可以用按钮静音音乐,但是当我进入游戏场景并返回菜单时,按钮不做任何事情。 所以这是我的问题,我希望任何人都可以帮助我。对不起我的英语不好。
【问题讨论】:
-
不确定第二个脚本是什么,但是,它不需要每帧都做 dontdestroyonload .. 如果第一个脚本是 mainmusic 游戏对象的一部分,那就足够了。如果第二个脚本在场景中,或者不是该主要音乐游戏对象的一部分,则每个场景都需要找到该主要音乐游戏对象,因为它可能已经在其中,不再相关
标签: unity3d