0
我遇到了一些與我的計時器有關的問題我想知道有人可以幫助我。我做了很多Goggle搜索,但主要的Unity答案網站是爲我完成的。在Unity中重置定時器
我想設置一個計時器,一旦我用射線擊中一個物體就開始計數到10。當我不再用射線擊中物體時,我希望計時器停止計數。我應該再次擊中同一個對象,我希望計時器從頭開始重新開始。
我現在擁有的是一個計時器,只有當我看着一個物體時纔開始計時。當我離開時間並且時間已經達到3秒時,這顯示在我的Inspector字段中。但是,當我回頭看同一個東西時,時間跳躍到我看過的東西和不看東西的時候。
有人可以看看我的邏輯,看看我是否失去了什麼?
void Start()
{
start_time = Time.deltaTime;
running_time = 0;
}
void Update()
{
bool updateTimer = (track_timer && lastHitObject != null);
Check(updateTimer);
}
// check to see which object my ray has hit
void HighLight(GameObject nextHitObject)
{
// Case1: Last ray and new ray both hit objects
if(lastHitObject != null && nextHitObject != null){
//1a: same objects, do nothing
if(lastHitObject.tag == nextHitObject.tag)return;
{ //1b: different objects, swap highlight texture
lastHitObject.renderer.material = oldMat;
lastHitObject = nextHitObject;
oldMat = lastHitObject.renderer.material;
lastHitObject.renderer.material = highlight_material;
track_timer = true;
return;
}
}
// Case2: Last ray hit nothing, new ray hit object.
if(lastHitObject == null && nextHitObject != null){
ResetTimer();
lastHitObject = nextHitObject;
oldMat = lastHitObject.renderer.material;
lastHitObject.renderer.material = highlight_material;
track_timer = true;
return;
}
// Case3: Last ray hit something, new ray hit nothing
if(lastHitObject != null && nextHitObject == null){
lastHitObject.renderer.material = oldMat;
lastHitObject = null;
track_timer = false;
return;
}
}
void ResetTimer()
{
start_time = 0;
running_time = 0f;
//Debug.Log("resetting timer");
}