Unity3d 在多个对象上播放相同的声音会在统一体上碰撞

Unity3d 在多个对象上播放相同的声音会在统一体上碰撞,unity3d,game-physics,Unity3d,Game Physics,我玩掷骰子游戏。我有一个6个骰子,在一个盒子里随机方向上施加随机力。现在,当骰子相互碰撞以及在盒子壁内碰撞时,需要产生声音 当前,当我向每个骰子添加声音,并在骰子碰撞时触发它时,当所有骰子同时玩时,声音会被连接 当所有6个骰子相互碰撞并与盒壁碰撞时,是否有更好的方法产生真实的声音 对于多个对象的碰撞,实际上很难产生真实的碰撞声音 如果您对每个“骰子到骰子”或“骰子到盒子”碰撞事件使用相同的音频剪辑,并在碰撞事件时触发它们,则最终结果听起来就像是音频剪辑的回声版本,具有各种延迟 如果您选择使用各种

我玩掷骰子游戏。我有一个6个骰子,在一个盒子里随机方向上施加随机力。现在,当骰子相互碰撞以及在盒子壁内碰撞时,需要产生声音

当前,当我向每个骰子添加声音,并在骰子碰撞时触发它时,当所有骰子同时玩时,声音会被连接


当所有6个骰子相互碰撞并与盒壁碰撞时,是否有更好的方法产生真实的声音

对于多个对象的碰撞,实际上很难产生真实的碰撞声音

如果您对每个“骰子到骰子”或“骰子到盒子”碰撞事件使用相同的音频剪辑,并在碰撞事件时触发它们,则最终结果听起来就像是音频剪辑的回声版本,具有各种延迟

如果您选择使用各种碰撞音频剪辑作为池进行选择,您可能会产生正常的最终结果,只要您能够保证在任何给定的时间段内播放同一音频剪辑时没有两种碰撞声音


最好的解决方案可能是获得真实场景的多个记录(骰子在盒子中滚动和碰撞),并在游戏中模拟碰撞时随机播放一个。只要音频剪辑的持续时间与模拟相匹配,就相对很难发现它是伪造的。

事实上,对于多个对象的碰撞,很难产生真实的碰撞声音

如果您对每个“骰子到骰子”或“骰子到盒子”碰撞事件使用相同的音频剪辑,并在碰撞事件时触发它们,则最终结果听起来就像是音频剪辑的回声版本,具有各种延迟

如果您选择使用各种碰撞音频剪辑作为池进行选择,您可能会产生正常的最终结果,只要您能够保证在任何给定的时间段内播放同一音频剪辑时没有两种碰撞声音


最好的解决方案可能是获得真实场景的多个记录(骰子在盒子中滚动和碰撞),并在游戏中模拟碰撞时随机播放一个。只要音频剪辑的持续时间与模拟相匹配,就相对难以发现它是伪造的。

当两个相同的声音以很小的延迟播放时,就会产生法兰状的效果,导致它们的波长放大和衰减

为了避免这种影响,您有许多选择:

  • 为了避免播放相同的sfx,延迟小于用户无法想象的程度。(您现在可能正在玩每个骰子命中sfx两次)

  • 使用不同的样本并随机播放。(如果您无法生成新样本,请尝试修改现有样本,只需将它们的音高更改3%-10%,以获得足够多的不同样本)

  • 如果第二个选项不能满足您的需要(项目大小增加),您可以使用第三方插件(如master audio)在运行时从一个声音中创建多个自定义音调的声音

  • 您可以在代码中更改音高(在运行时),并确保两次近距离击球不会使用相同(或非常近)音高


  • 当两个相同的声音以很小的延迟播放时,你会听到类似法兰的效果,导致它们的波长放大和衰减

    为了避免这种影响,您有许多选择:

  • 为了避免播放相同的sfx,延迟小于用户无法想象的程度。(您现在可能正在玩每个骰子命中sfx两次)

  • 使用不同的样本并随机播放。(如果您无法生成新样本,请尝试修改现有样本,只需将它们的音高更改3%-10%,以获得足够多的不同样本)

  • 如果第二个选项不能满足您的需要(项目大小增加),您可以使用第三方插件(如master audio)在运行时从一个声音中创建多个自定义音调的声音

  • 您可以在代码中更改音高(在运行时),并确保两次近距离击球不会使用相同(或非常近)音高