タイマーが設定された目標に達するたびにトリガーされるタイマー イベントを作成しました。ただし、最初にタイマーをトリガーすると、一定の長さに達してから停止します。ただし、タイマーを再度トリガーすると、意図したとおりに機能し、これがどこで発生しているのかわかりません。
この問題がどこにあるのかを確認するために、誰かが私のタイマー コードを見てくれませんか? 1日探しましたが、特定できません。
以下は、メインクラスでタイマーを使用して何かを行うインスタンスです。わかりやすくするために、一部の内容は省略されています。
public float start_time;
public float look_at_time;
public float end_time;
private bool track_timer = false;
//this is called from a different class but acts as my start method
public void Setup()
{
start_time = 0;
running_time = 0;
ResetTimer();
}
void Update ()
{
bool updateTimer = (track_timer && lastHitObject != null);
Check(updateTimer);
MyMethod();
}
void ResetTimer()
{
start_time = 0.0f;
running_time = 0f;
track_timer = false;
}
void MyMethod()
{
if(argument 1)
{
if(argument 2)
{
track_timer = false;
}
}
else
track_timer = false;
}
void Check(bool updateTimer)
{
if(updateTimer)
{
start_time += Time.deltaTime;
running_time += Time.deltaTime;
if ( running_time >= end_time )
{
track_timer = false;
}
}
else
end_time = Time.time;
}