【问题标题】:How can I use two Audio Listeners?如何使用两个音频监听器?
【发布时间】:2019-01-29 00:33:19
【问题描述】:

问题是我有一个角色控制器,玩家有一个相机,而相机有一个音频监听器。

但我还有另一个摄像头,即主摄像头,它也有一个音频监听器。 主摄像头正在使用 Cinemachine Brain 并使用虚拟摄像头。

如果我禁用主摄像机上的音频侦听器,我的过场动画中的角色会走到一扇门前,但是当门打开时,不会有开门的声音。

如果我禁用播放器控制器摄像头音频监听器,那么当我将播放器移动到门时,玩家进入门时将没有声音。 我需要两者都工作。当过场动画中的角色走路并进入一扇门并且门打开时,玩家可以四处走动。

播放器控制器摄像头和音频监听器的屏幕截图:

这是主摄像头音频监听器的屏幕截图:

所以现在在运行游戏时,角色 medea_m_arrebola 正在动画中穿过一扇门,并且有门打开和关闭的声音。 这是在后台工作的过场动画的一部分,我的意思是过场动画摄像机尚未启用,但您可以听到音频。

稍后我将在摄像机之间切换以显示过场动画的部分内容。

但现在 FPSController ( Player ) 也在工作,玩家可以四处走动,但当他穿过门时,门会打开,但门不会发出声音。

如果我将启用两个音频侦听器,我将在编辑器的控制台中收到此警告消息,说启用了超过 2 个音频侦听器......等等。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    对我来说,这听起来像是一个设计问题。 Unity 一次只能处理一个 AudioListener。您基本上必须构建您的过场动画系统以使用 Unity 提供的功能,或者找到某种解决方法来适应您的特定情况。

    您可以尝试即时启用/禁用 AudioListeners,或者在过场动画中使用播放器周围的专用于定向音频输入的音频源。 (就像一个带有空对象的环绕声设置)这样你就可以模拟两个 AudioListener。最好的情况是您重新设计系统 为两个输入使用一个 AudioListener。

    也许先尝试一种解决方法,但如果它不能 100% 正常工作,请进行返工。从长远来看,这是值得的。

    【讨论】:

    • 切换音频监听器不好,因为我需要在控制播放器时同时听到门打开/关闭,而另一个角色正在场景中的其他地方行走(离播放器不远,但玩家视野之外)。出于某种原因,玩家相机上的音频监听器会阻止其他角色穿过门时播放音频。也许问题在于,穿过门的另一个角色被虚拟摄像机用于跟踪和观察?主摄像机与电影机和时间线一起使用。
    • 这可能是你的问题。也许尝试在过场动画期间将主摄像机位置设置在门上以确认
    • 为了测试,我禁用了玩家相机和主相机上的音频监听器,并创建了一个新的空游戏对象并向其添加了一个新的音频监听器。现在在运行游戏时,我听到角色穿过门的声音,我听到门打开和关闭的声音,但是当玩家穿过门时,我听不到门打开/关闭的声音。
    • 这两种情况到底有什么区别?行走播放器的作品,太好了!但是,当您说“移动”时,您指的是什么?与步行玩家相比有什么不同?
    • 是的!正是这样!它就像一个虚拟麦克风一样工作。但是 AudioListener 组件没有内置范围。您开始听到声音的范围完全取决于 AudioSources。查看 Unity 手册中有关 AudioSources 的 Max Distance 选项:link 如果您希望在更远的距离上听到您的音频,只需稍微调整一下范围即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    相关资源
    最近更新 更多