2017-12-27 8 views
0

ボタンを押す機能を動作させるには、#秒間だけで作業しますか?たとえば、ユーザーはEをいつでも押すことができますが、たとえばアニメーションを5秒ごとに実行できますか?私はInvokeを試みましたが、それはうまくいかないように動作するようです。私はタイムスタンプとStartCoroutine(waitforseconds)も試みました。これは、すべての作品リミットボタンを秒単位で押していますか?

void Update() 
{ 
     if (triggerIsOn && Input.GetKeyDown(KeyCode.E)) 
    { 
     drinkAmin.Play("DrinkVodka"); 
     StartCoroutine(letsWait()); 

    } 
} 

そして

IEnumerator letsWait(){ 

     Debug.Log ("lets wait works!"); 
     yield return new WaitForSeconds (5); 
     TakeAshot(); 
    } 

ではなく、間に5秒ではなく、むしろそれは、各ボタンの後に5秒ごとに動作します:ここで

は、私はあなたが見ることができます得たものです押す。だから、これはうまくいきません。誰でも助けてくれますか?ここで少し失われた。 ありがとう!

+0

アニメーションの開始時にイベントを切り離し、5秒後に再接続する方が簡単でしょうか? – KMC

+0

それはうまくいくかもしれませんが、それは賢明なことではありませんか? @KMC – papi

答えて

0

あなたが話していることは、「デバウンサー」と呼ばれています。これについて既に良い質問があります:C# event debounce - そこのアプローチの1つを試してみてください。

関連する問題