因此,我创建了一个音乐播放器,可以在不中断的情况下通过我的所有菜单和故事场景播放音乐,但在我的游戏场景中我想要删除该音乐。当我的游戏场景加载时,如何破坏播放的音乐?
这是我的音乐剧本:
#pragma strict
var offsetY : float = 40;
var sizeX : float = 100;
var sizeY : float = 40;
var musicPrefab : Transform;
function Start () {
if (!GameObject.FindGameObjectWithTag("MM")) {
var mManager = Instantiate (musicPrefab, transform.position, Quaternion.identity);
mManager.name = musicPrefab.name;
DontDestroyOnLoad (mManager);
}
}
答案 0 :(得分:3)
直接在它上面调用destroy:
{{1}}
DontDestroyOnLoad仅在加载新场景时保护对象不被破坏。
答案 1 :(得分:1)
我创建了一个名为Destroyer.js的脚本,并将其附加到我不想要音乐的场景中的相机上。然后在那个脚本中我添加了这段代码,它不再播放了。
function Start() {
Destroy(gameObject.Find("_MMusic"));
}
答案 2 :(得分:0)
你可以像Almo上面提到的那样调用Destroy(objectname)
directy来破坏对象。您可以将它放在同一个函数调用中,该函数调用负责更改您不希望播放音乐的场景。
答案 3 :(得分:0)
我遇到了同样的问题,因此我尝试了以上答案中提到的Destroy(gameObject);
,但对我而言无效。
所以我尝试了SceneManager.LoadScene("OtherSceneName", LoadSceneMode.Additive);
,它对我有用。阅读官方文档here。
答案 4 :(得分:0)
也许有点晚了,但是我使用了这个脚本,并且效果很好:
GameObject player = GameObject.FindGameObjectWithTag("Player");
if(player)
Destroy(player);
答案 5 :(得分:0)
太简单了,菜鸟我花了一个小时才完成 只需将 Destroy(gameObject) 放在 Update 方法中:)