unity3d - 相同的游戏对象两个音频源不播放他们的音频剪辑 - Unity
问题描述
我正在开发 3d runner 类型的游戏,所以我在 Player GameObject 中附加了两个 AudioSources 组件:
- AudioSource 用于播放游戏音乐
- AudioSource 用于播放播放器碰撞声音
在同一个 Player GameObject 上,我分配了两个 AudioSources 来播放这两个声音,但目前只播放 GamePlay 音乐,当它与障碍物碰撞时不会播放 Player 碰撞声音。
两个 AudioSource 都有其指定的 AudioClip。
在与障碍物发生碰撞时,我正在播放这样的碰撞声音:
void OnCollisionEnter (Collision other)
{
if (other.transform.CompareTag (GameConstants.TAG_OBSTACLE)) {
Vector3 splashEffectPos = groundCheck.position;
if (splashEffectPos.y < 0.05f)
splashEffectPos.y = 0.05f;
// stop game music
if (SoundManager.Instance.EnableSound) {
gameSoundAS.Play ();
gameMusicAS.Stop ();
// gameSoundAS.PlayOneShot (ballCollisionClip);
}
GameObject splash = Instantiate (splashEffectPrefab, splashEffectPos, Quaternion.identity);
splash.transform.SetParent (GameController.Instance.transform);
GameController.Instance.GameOver ();
gameObject.SetActive (false);
}
}
GamePlay 音乐正常播放并在与障碍物碰撞时停止,但播放器碰撞声音未播放。
解决方案
好的,我设法自己解决了这个问题。如果 GameObject 被禁用,则其 AudioSources 无法播放。
在上面的OnCollisionEnter
方法中,我禁用了我的 Player GameObject,所以 AudioSource 不会产生任何声音。
推荐阅读
- javascript - WebpackOptionsValidationError:配置对象无效。我无法部署我的服务器来试用我的捆绑包
- javascript - Bandcamp API sales_report 端点
- xml - 基于预定义值和 XML 文档值的 xsd“语义”限制
- python - 如何参考另一列Python计算一列中的所有元素
- r - 使用 dplyr 在数据帧中乘以一组值
- python - 将 pandas 数据框中的两列拆分为两列并命名
- python - 迭代方程
- css - 未应用 Angular .cdk-virtual-scroll-content-wrapper 的 CSS
- c++ - gdb 导出导入内存
- java - Java pdfbox 从印地语的 PDF 中读取文本(非英语 PDF)