首页 > 解决方案 > Unity/C# 在加载我不想要的场景时播放 Audioclip

问题描述

现在我有这样的东西

我的 SoundManager 脚本

我的声音脚本

如果这他

C# 脚本

所以我有两个我想在游戏中播放的音频剪辑。玩家撞到障碍物时的“boing2”声音 - 这很好用。

当球员击中目标时,“JinglDingl”应该发挥作用。这也很好。

问题是,当玩家在游戏中击中目标时,“boing2”也会播放。我不知道为什么。

我尝试通过禁用两个 FindObjectOfType().Play(...) 行来测试它 - 并且游戏在击中目标时仍然播放“boing2”声音。

如果我禁用“NextLevel”行,则没有预期的“boing2”。

所以我的结论是,unity 会在加载新场景时播放声音。如果我打错了,我已经搜索了编辑器,但我的搜索没有成功。

有任何想法吗?

标签: c#unity3d

解决方案


在音频源中取消选中“唤醒时播放”。

醒着玩

或者,如果您在代码中创建它,您可以在代码中的 AudioSource 上将其设置为 false

void Awake(){

...


    foreach(sound s in sounds) {

        s.source = gameObject.AddComponent<AudioSource>();
        s.source.clip = s.clip;
        s.source.playOnAwake = false;
    }


}

推荐阅读