if (coinMag == true)
{
Timer += 1 * Time.deltaTime;
if (Timer >= 10)
{
coinMag = false;
Timer = 0;
}
}
我想要的是当CoinMag为真时,计时器应该启动...我已将初始化计时器作为公共浮动Timer=0.0f
; ..定时器在10秒后正好启动后,定时器应重新初始化为0。
答案 0 :(得分:1)
使用此coroutine
:
IEnumerator Timer(float duration,Action callBack = null)
{
float elapsedTime = 0.0f;
while (elapsedTime < duration)
{
yield return null;
elapsedTime += Time.deltaTime ;
}
if (callBack != null)
{
callBack();
}
}
如下:
StartCoroutine(Timer(10,()=>{Debug.Log("After 10 seconds");}));
答案 1 :(得分: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
}
}