2017-07-20 2 views
1

現在、私は8秒間のオーディオクリップを持っています。しかし、私は、特定のことが起こったときにそれを止めることができるようにしたい。このような何か:PlayOneShotの使用時にオーディオを停止する方法

private AudioSource soundPlayer2D; 
private AudioClip sound; 

    void Start(){ 

    GameObject new2DsoundPlayer = new GameObject ("2DSoundPlayer"); 
    soundPlayer2D = new2DsoundPlayer.AddComponent<AudioSource>(); 
    new2DsoundPlayer.transform.parent = transform; 

    } 
    void Update() { 

     if(shouldPlayAudio){ 

     soundPlayer2D.PlayOneShot (sound, fxVolumePercentage * allVolumePercentage); 

     } else if(shouldStopAudio){ 

     //Stop Audio <-- 

     } 
    } 

編集1:私は、特定のオーディオクリップを停止したいと注意していないオーディオソースPlayOneShotが使用されていない停止オーディオすることができます

+0

[SoundPlayer2D.Stop()](https://docs.unity3d.com/ScriptReference/AudioSource.Stop.html)?また、標準の命名規則に従うために、そのプロパティの名前を 'soundPlayer2D'に変更する必要があります(クラス名は最初の大文字で始まります。あるいは、プロパティのメソッド呼び出しはクラスへの静的な参照のように見えます)。 – Draco18s

+0

しかし、これはSoundPlayer2Dで再生されているすべてのオーディオを停止するでしょうか?そして、SoundPlayer2Dで別のサウンドを再生したいとき、前のサウンドはSoundPlayer2D @ Draco18sを再開するときに再生を終了します。 – RaZ

+0

は@ typo @ Draco18s – RaZ

答えて

3

。それは遊びと忘れ機能のようなものです。もちろん、Unityのオーディオシステムをミュートすることはできますが、それは良い解決策ではありません。

代わりに再生機能を使用する必要があります。単にAudioClipをAudioSourceに割り当ててから再生してください。これで停止機能で停止することができます。

private AudioSource SoundPlayer2D; 
private AudioClip sound; 

再生する前に、それをあなたがそれを

SoundPlayer2D.Play(); 

を再生することができ、

SoundPlayer2D.clip = sound; 

今はAudioSourceにたAudioClipを割り当て、停止:

SoundPlayer2D.Stop(); 

boolean変数を使用して音声を再生するタイミングを決定することをお勧めします。フレーム内で複数回再生しようとしているため、オーディオが再生されないなどの問題が発生するため、これを行わないでください。

あなたは、オーディオを再生および停止する機能にそれを配置する必要があります。このような

何か:

public void playMyAudio(AudioClip clipToPlay) 
{ 
    SoundPlayer2D.clip = clipToPlay; 
    SoundPlayer2D.Play(); 
} 

public void stopMyAudio() 
{ 
    SoundPlayer2D.Stop(); 
} 

とsoundPlayer2Dは、単に音 たAudioClipを再生するに専念すべきか?

いいえ。あなたは同時に複数のオーディオを再生する必要がない限り、必要はありません。再生する前に、AudioSource(soundPlayer2D)クリップを別のAudioClipにいつでも変更することができます。

+0

はい私はbool変数を使ってオーディオを再生するタイミングを決めるべきではないことを知っています。私は例として使用していましたが、感謝していません。 – RaZ

+0

Ok。あなたの最初のコメントに答えるために私の答えを修正しました。 – Programmer

+1

ありがとうございます... – RaZ

関連する問題