2016-08-24 8 views
-2
if (coinMag == true) 
{ 

Timer += 1 * Time.deltaTime; 

       if (Timer >= 10) 
       { 

        coinMag = false; 
        Timer = 0; 
       } 
      } 

何になるはずですが、私は公共のフロートTimer=0.0fとしてタイマーをintializedている... CoinMagがtrueの場合、タイマーが開始すべきです。次のようにタイマー、10秒でゼロと端から開始し、10秒タイマーの後に、私が欲しい0

IEnumerator Timer(float duration,Action callBack = null) 
{ 
    float elapsedTime = 0.0f; 
    while (elapsedTime < duration) 
    { 
     yield return null; 
     elapsedTime += Time.deltaTime ; 
    } 

    if (callBack != null) 
    { 
     callBack(); 
    } 
} 

:タイマーは10秒後に正確に開始した後にタイマーが0

+0

だから、このコードで何が間違っていますか? –

+0

これを "forever"にしておかなければ、 'InvokeRepeating'や' Coroutine + WaitForSeconds'は 'Update'のようなものより良いかもしれません。 –

+0

これを実行するには、 'coinMag = false'を省略して他の場所("外部スイッチ "のような)に置くだけです。 –

答えて

1

使用このcoroutineをに再初期化されなければならない..and

StartCoroutine(Timer(10,()=>{Debug.Log("After 10 seconds");})); 
0

そして、あなたがにタイマー値が必要な場合(タイマーが切れたときにメソッドを実行することに加えて)これを行うことができます:

private BackgroundWorker timer = new BackgroundWorker(); 
    public void initialize() 
    { 
     timer.DoWork += doTimer; 
     timer.RunWorkerAsync(); 
    } 
    public double milliseconds_Remaining = 0; 
    public double milliseconds_Transpired = 0; 
    private void doTimer(object sender, DoWorkEventArgs e) 
    { 
     bool isRunning = true; 
     DateTime begin = DateTime.Now; 
     while (isRunning) 
     { 
      //update times 
      double milliseconds = DateTime.Now.Subtract(begin).TotalMilliseconds; 
      milliseconds_Remaining = 10000 - milliseconds; 
      milliseconds_Transpired = milliseconds; 
      if (milliseconds >= 10000) 
      { 

       //activate timer function 

       //reset 
       begin = DateTime.Now; 
      } 
      System.Threading.Thread.Sleep(250);//or 500 or 50 depending on accuracy needed 

     } 
    } 
+0

あなたの答えを一つにまとめることは、間違いなく一方の内容をコピーして貼り付けることを意味します。 –

+0

これはUnityであることを忘れないでください。はるかに簡単な方法で結果を達成することができますが、あなたのポストは通常​​のC#アプリケーションにも適しています。 –

+0

おかげさまで、ありがとうございます - 私は他の答えを削除して、今後タグにもっと注意を払います。乾杯! –

関連する問題