加载我不想要的场景时Unity / C#播放Audioclip

时间:2019-01-23 14:22:48

标签: c# unity3d

现在我有类似的东西

我的SoundManager脚本

我的声音脚本

如果他这样

C#脚本

所以我有两个要在游戏中播放的音频片段。 玩家碰到障碍物时发出“ boing2”声音-可以正常工作。

当玩家击中球门时,“ JinglDingl”应开始比赛。这也很好。

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

我尝试通过同时禁用两个FindObjectOfType()。Play(...)行来对其进行测试-并且游戏在达到目标时仍会播放“ boing2”声音。

如果我禁用“ NextLevel”行,则不会出现预期的“ boing2”。

所以我的结论是,只要加载新场景,团结就会播放声音。如果勾选了错误,我已经搜索了编辑器,但搜索失败。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

Play on Awake

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

void Awake(){

...


    foreach(sound s in sounds) {

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


}