共振音频源-Unity3D碰撞

共振音频源-Unity3D碰撞,unity3d,collision-detection,Unity3d,Collision Detection,我将推理音频源添加到一个对象,并希望在该对象与另一个对象发生碰撞时生成声音 我遇到的问题是,每当对象进入“音频区域”(以一定半径连接到对象的蓝色磁盘)时,就会触发Unity中的OnCollisionCenter。然而,我感兴趣的是物理碰撞发生的时间,而不是这个“音频”碰撞 绕过它的一种方法是只创建该对象的副本,而不使用跟随另一对象运动的合理音频源。然后触发对象副本的碰撞。但我想知道是否有任何方法可以区分这两种碰撞的统一性 这里有一个例子。红球是我想要产生声音的对象,它有一个合理的音频源作为一个组

我将推理音频源添加到一个对象,并希望在该对象与另一个对象发生碰撞时生成声音

我遇到的问题是,每当对象进入“音频区域”(以一定半径连接到对象的蓝色磁盘)时,就会触发Unity中的OnCollisionCenter。然而,我感兴趣的是物理碰撞发生的时间,而不是这个“音频”碰撞

绕过它的一种方法是只创建该对象的副本,而不使用跟随另一对象运动的合理音频源。然后触发对象副本的碰撞。但我想知道是否有任何方法可以区分这两种碰撞的统一性

这里有一个例子。红球是我想要产生声音的对象,它有一个合理的音频源作为一个组件。蓝色区域是从该组件创建的。每当蓝色磁盘接触灰色地板时,就会产生碰撞。我想禁用这个“音频”碰撞,只有当红色球和灰色地板发生物理碰撞时才会检测到碰撞


编辑:找到问题。我一直在测试PhysicsManager属性(编辑/项目设置/物理),我将“默认联系人偏移量”设置为0.01,更改后与蓝色区域相同,因此我在错误的位置查找问题。现在我将触点偏移量更改为较小的值,一切正常

在PhysicsManager属性(编辑/项目设置/物理)中,“默认触点偏移”定义蓝色区域。将该值更改为较小的值以调整接触区域的大小

旧答案:


在不知道你的场景或代码的情况下,我只能推测你可能想要打开音频源的碰撞,并在与对象发生碰撞时手动触发它。只需附加一个用于侦听冲突的脚本,然后触发音频源的冲突事件(或仅播放声音)。

如果您想要更具体的答案,请尝试提供您迄今为止尝试过的内容的屏幕截图或代码示例。谢谢!我现在添加了一个示例图像来说明问题,但是如何禁用音频冲突?我找不到音频冲突和物理冲突之间的任何区别。您可以使用没有冲突的正常音频源。从你的图像来看,你可能还可以减小共振音频源的大小,使其适合球的半径。但是,我不会使用理性音频源,它比普通音频源有好处,对吗?如何改变半径?如果用户改变了声音,这不会影响提供给用户的声音吗?感觉应该有一个更优雅的解决方案来解决这个问题,或者?当碰撞发生时,你到底在做什么?你播放声音,改变音量吗?在哪一次碰撞中你会这样做?你能忽略来自音频源的碰撞事件并在对象的碰撞事件上启动音频吗?我想在两个对象发生物理碰撞时生成声音。我希望这个物体在碰撞时产生特定的声音,应该来自推理音频源,并希望能够操纵这个声音,如音量等。音频源是碰撞物体的一个组成部分,统一并不区分音频源的碰撞和物理对象的碰撞。