2017-03-04 16 views
0

再生のために.wavサウンドファイルが再生されていません。 Audio Sourceコンポーネントで「Play On Awake」を選択すると、サウンドファイルが再生されるため、サウンドファイルが機能しています。私がhit.Play()を呼び出した場合にも再生されます。 StartメソッドとUpdateメソッドの両方で使用できます。ただし、OnMouseOverまたはOnMouseDownメソッド内で再生されるわけではありません。そうでなければ完璧な作業状態になっています。オブジェクトがクリックされたときにオーディオが再生されないC#Unity

私は、単に私の問題を解決しない推奨されなくなったコードやソリューションを実行するための豊富な調査を行っています。だから、誰かが私の問題についての洞察を持っているなら、いくらかの助けが大いに評価されるだろう!

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class clickDissapear : MonoBehaviour { 

public AudioSource hit; 

private void OnMouseDown() 
{ 
    hit.Play(); 
    Destroy(this.gameObject); 
} 

private void OnMouseOver() 
{ 
    if (Input.GetKeyDown(KeyCode.Z)) 
    { 
     hit.Play(); 
     Destroy(this.gameObject); 
    } 

    if (Input.GetKeyDown(KeyCode.X)) 
    { 
     hit.Play(); 
     Destroy(this.gameObject); 
    } 
} 

private void OnBecameInvisible() 
{ 
    Destroy(gameObject); 
    //Play Miss 
} 

void Start() { 
    hit = GetComponent<AudioSource>(); 
} 

void Update() { 

    } 
} 

Here is a screenshot of my setup in Unity.

答えて

0

問題は、サウンドが再生されるとはAudioSourceのオブジェクトがdestoryedあります。だからこそあなたは何の音も聞こえません。 audioSourceが破棄され、最初の.001秒の音しか聞こえません。 Destroy(this.gameobject、hit.audioclip.Lenght)を使うことをお勧めします。またはコルーチン(Coroutine)。

+0

ああ、わかりました。それは理にかなっています。私は、オーディオが破壊前にキューに入れられた場合、オブジェクトの状態にかかわらずクリップ全体を再生すると思っていました。 –

+0

2つのソリューションのうちの1つが、あなたが望むように問題を解決することを願っています。また、必要に応じて、他のオブジェクトにaudioSourceを添付することもできます。もっと簡単に見つけることができるかもしれない – pasotee

関連する問題