在Unity中动态添加音频和控制音量

时间:2017-08-04 07:43:27

标签: c# unity3d

我需要播放一个mp3文件并在某些点调暗/增加音量。我找到了一个关于如何添加3D声音的教程,但这似乎是开销。我可以加载mp3文件并以某种方式控制音量。对功能的任何建议都将是一个很大的帮助。

3 个答案:

答案 0 :(得分:1)

  • 导入Unity的任何音频文件都可以从脚本中作为音频剪辑实例使用,它实际上只是音频数据的容器。剪辑必须与 AudioSource 音频侦听器结合使用才能实际生成声音。

  • 当您将剪辑附加到游戏中的对象时,它会向对象添加一个AudioSource组件,该组件具有音量,音高和许多其他属性。

  • 在播放音源时,音频监听器可以“听到”范围内的所有音源,这些音源的组合可以提供通过扬声器实际听到的声音。您的场景中只能有一个音频监听器,并且通常会附加到主摄像头

简而言之,您可以使用AudioSource.volume来控制它:

AudioSource source = GetComponent<AudioSource>();
source.volume = 0.1f; // 0.0-1.0, you can change this at runtime

答案 1 :(得分:1)

你可以通过碰撞器检查触发器来处理它。

void Awake()
{
    AudioSource source = GetComponent<AudioSource>();
}

void OnTriggerEnter(Collider other) {
   if(other.tag == "point")
      source.volume = 0.1f;
}

void OnTriggerExit(Collider other) {
   if(other.tag == "point")
      source.volume = 1f;
}

答案 2 :(得分:0)

我认为在this unity tutorial之后,您的服务最佳。但基本上你想要将一个音频源添加到游戏对象并将其与音频管理器相关联。我经常设置我的经理来处理几种不同的声音类型(背景音乐,声音效果,ui声音等)。然后,您可以动态更改特定声音类型的级别,并且它会影响与之关联的所有音频源。