我有一个代码
void redBowlValley(){
if (timeStampR2 <= Time.time && Input.GetKeyDown (KeyCode.DownArrow) && canFire == true) {
Vector3 whereToSpawnR= GameObject.Find ("PlayerRedBowl").transform.position;
Vector3 whereToSpawnR2= GameObject.Find ("PlayerRedBowl2").transform.position;
Vector3 whereToSpawnR3= GameObject.Find ("PlayerRedBowl3").transform.position;
Vector3 whereToSpawnR4= GameObject.Find ("PlayerRedBowl4").transform.position;
Vector3 whereToSpawnR5= GameObject.Find ("PlayerRedBowl5").transform.position;
Instantiate (PRedBowl, whereToSpawnR, Quaternion.identity);
Instantiate (PRedBowl, whereToSpawnR2, Quaternion.identity);
Instantiate (PRedBowl, whereToSpawnR3, Quaternion.identity);
Instantiate (PRedBowl, whereToSpawnR4, Quaternion.identity);
Instantiate (PRedBowl, whereToSpawnR5, Quaternion.identity);
timeStampR2 = Time.time + CDRR2;
}
}
此代码对redBowlValley应用冷却时间。但我不明白一件事。它说如果timeStampR&lt; = Time.time。几秒钟后这是真的。实际上减少了什么时间? timeStampR2如何等于Time.time?什么是Time.time?
编辑:或时间。时间刚刚增加,就是如何获得 等于timeStampR2?
答案 0 :(得分:1)
根据统一,Time.time返回游戏开始以来的时间。
答案 1 :(得分:1)
Time.time
是此帧开头的时间(只读)。这是自游戏开始以来的秒数。如果在单个帧中多次调用,则返回相同的值。每个帧Time.time
的值随着游戏开始后经过的秒数增加而增加。
在您的示例中,如果timeStampR2 <= Time.time
(如果其他变量为true
)则调用函数。在这里,您要等待timeStampR2
的值(以秒为单位)。
例如,如果timeStampR2 = 5
游戏在每个框架中投放时,Time.time
的值将从0
增加。自您点击播放后经过Time.time = 5
(5
秒)后,timeStampR2 <= Time.time
将为true
。