问题
- 我无法在特定事件中播放音频剪辑。
- 我想让玩家进入触发区域时听见声音。
- 但我听不到任何声音播放。
原因
您已经在Unity中创建了一个声音触发器的C#脚本,当玩家进入触发区域时播放声音当主角离开时停止。
已为GameObject绑定Audio Source组件并指定了AudioClip。
您的脚本在Console窗口显示没有错误(位于Unity左下角),但是当您的玩家进入触发区域时并没有听到有声音播放。
解决方案
有两种可能导致进入触发区域时不能听见声音:
- Audio Source 离Scene中Main Camera 的Audio Listener组件太远了。这导致声音减弱太多而不能被听见。
- 您没有将Rigidbody添加到您的Collider或者GameObject上。触发器事件只有在Collider或者GameObject上有一个Rigidbody时才会发送。
您可以同过调整Inspector窗口中3D Sound Settings的min/max distance属性使声音能在更远的距离被听到。或在Hierachy窗口者将Audio Source 添加到Player Controller的 Main Camera上。
选中Collider 确保Inspector面板中勾选了“is trigger”,点击Add Component,为Collider添加Rigidbody,给GameObject添加一个Rigidbody也是使用相同的方式。这个触发器并不会注册一个Rigidbody进入时的碰撞,所以您需要修改您的脚本调用OnTriggerEnter();当Rigidbody进入或离开碰撞区域时。下面是如何在玩家进入触发区域是播放声音的c#脚本。
更多信息
更多有关Colliders的信息请看这里