2016-05-31 3 views
0

注:これは、2DゲームユニティC#OnTrigger/OnCollisionサウンド

だ私は文字がその周りにボックス衝突を持つオブジェクトに接触したときに再生するオーディオクリップを取得しようとしています。

私はOnTrigger/OnCollisionメソッドを試しましたが、どちらのサウンドも再生していません。私はまた、多くのソリューションをオンラインで試しましたが、衝突時には音が出ません。マイクリップはAwakeで動作しますが、意図した通りには動作しません。

チェックリスト:

  • プレーヤーは "プレイヤー" のタグがあります。
  • プレーヤーがOject衝突が「トリガーは」た剛体2Dと衝突2D
  • を持っているが
  • をチェックされたObjectがはAudioSource
  • を持つオブジェクトは、オーディオスクリプト
  • を持つオブジェクトは、ボックスを持っています衝突2Dは、それ
  • 周りの衝突のためのオーディオクリップははAudioSource成分に結合され

ここで(オブジェクトにアタッチ)現在のスクリプトです: 私はとても感謝しています!

public class Audio : MonoBehaviour 
{ 

    public AudioSource audioClip; 

    // Use this for initialization 
    void Start() { 
    } 

    // Update is called once per frame 
    void Update() { 
    } 

    void OnTriggerEnter2D(Collider2D collision) 
    { 
     if (collision.gameObject.tag == "Player") 
     { 
      audioClip.Play(); 
     } 
    } 
} 
+0

オブジェクトのボックスコライダーは、トリガーとしてマークされていますか?そのコライダーは、オブジェクトと同じサイズかそれ以上ですか(より大きいはずです)? –

+0

はい、私はオブジェクトの周りにコライダーを意味した、申し訳ありません!そして、はい、コライダーはスプライトであるオブジェクト自体よりも広いです。コライダーは、オブジェクト自体の2倍のサイズです。プレイヤーがコライダースペースに入るときにクリップを再生したいので。 –

+0

この2Dまたは3Dですか?コライダー、リジッドボディ、および2Dおよび3D用のOnTriggerX/OnCollisionX関数のさまざまなバージョンがあります。 –

答えて

0

何が問題なのかを調べるには、問題を単純化することから始めます。

あなたはこのようなDEBUG.LOG

void OnTriggerEnter2D(Collider2D collision) 
{ 
    Debug.Log(this.gameObject.name+ " collided with "+collision.gameObject.name) 
} 

として、あなた知っているが動作することを、OnTriggerEnter2Dに簡単な何かをすることによって、この方法を開始することができ、それは衝突や問題だオーディオだ場合、あなたは知っているだろう。

コリジョンが機能している可能性がありますが、間違った設定や欠落している微妙なディテールのために音声が聞こえない可能性があります。