我正在学习如何在Unity中制作游戏的教程,我决定在教程结束后添加到游戏中。我目前正在为主菜单和游戏关卡场景添加背景音乐。我在主菜单中添加音乐的方法是制作一个空对象,然后添加音频源组件,然后添加我想要的背景音乐。我为关卡添加音乐的方式非常相似,我几乎做了完全相同的事情,但我做了一个脚本,并将其添加到空的,因为我了解了“DontDestroyOnLoad”所以音乐可以继续到下一个级别而不被中断,但当游戏循环回到主菜单时,它有菜单的背景音乐和级别重叠,所以我请求帮助我想出来的代码,我希望能阻止它,但没有工作。如果有帮助,我也使用Unity版本2020。
这是我想出来的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class DontDestroyAudio : MonoBehaviour
{
void Awake()
{
if(SceneManager.GetActiveScene().name == "MainMenu")
{
Destroy(this.gameObject);
Debug.Log("This if statment works?");
}
else
{
DontDestroyOnLoad(transform.gameObject);
}
}
}
1条答案
按热度按时间7gs2gvoe1#
我建议制作一个新的场景,只有你的音乐资产在其中,并添加加载它与
SceneManager.LoadScene("YourLevelAudioScene", LoadSceneMode.Additive);
,然后加载和卸载所有级别相同的参数。当你将去MainMenu
场景,你将卸载YourLevelAudioScene
。你可以阅读更多关于它here.另一种方法是订阅
SceneManager.sceneLoaded
事件,更多的是here.