目录

Wwise Unity Integration Documentation
Obstruction 和 Occlusion

在 Unity 中,可阻挡或遮蔽声音。您可以使用:

A. Emitter Obstruction/Occlusion

在将 AkEmitterObstructionOcclusion 组件添加到 GameObject 后,可在 Unity 中为 Emitter 应用 Obstruction 或 Occlusion。在发声体和听者之间的路径中有障碍物时,该组件会调用 SetObjectObstructionAndOcclusion(),并将声障/声笼值设为 1。若地图中不使用 Spatial Audio(即未添加任何 AkRoom 组件),则 AkEmitterObstructionOcclusion 组件将使用声笼。在空间音频场景中,该组件仅对空间音频听者(即添加了 AkSpatialAudioListener 组件的 GameObject)应用声障。Emitter Obstruction 仅作用于空间音频听者所在房间内的发声体。

AkEmitterObstructionOcclusion 组件

为了确保为所需对象应用 Obstruction 或 Occlusion,可使用 Layer Mask。比如,您可以为 Player 对象指定 Layer,同时在 AkEmitterObstructionOcclusion 组件中弃用。如此一来,听者的身体便不会阻挡或遮蔽声音。

在 Ak Emitter Obstruction Occlusion 组件中设置 Layer Mask 选项

B. Portal Obstruction

另外,过门户传播的声音也可以被阻挡。若未使用 Spatial Audio Diffraction,则可将 GameObject AkRoomPortalObstruction 组件添加到带有 AkRoomPortal 的 GameObject。在 Portal 和 Spatial Audio Listener 之间的路径中有障碍物时,该组件会调用 SetObjectObstructionAndOcclusion(),并将声障值设为 1。

AkRoomPortalObstruction 组件

Portal 所连 Room 的 Mesh 将借助 AkRoomPortalObstruction 组件产生 Obstruction 作用。若使用了 Surface Reflector,则其可能也会阻挡 Portal 开口。确保将其放入不同的 Layer,以便从 AkRoomPortalObstruction 组件的 Layer Mask 中排除。

在 Ak Room Portal Obstruction 组件中设置 Layer Mask 选项