同一个 GameObject 两个 AudioSources 不播放他们的 AudioClips - Unity

Same GameObject Two AudioSources Not Playing Their AudioClips - Unity

我正在开发 3d 亚军类游戏,所以我在 Player GameObject 中附加了两个 AudioSources 组件:

  1. 用于播放游戏音乐的 AudioSource
  2. 播放玩家碰撞音效的AudioSource

在同一个Player GameObject上,我分配了两个AudioSources来播放这两种声音,但目前只播放GamePlay音乐,Player碰撞障碍物时不会播放碰撞声音。

两个 AudioSources 都有其指定的 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 不会产生任何声音。