所以,在Unity中我有这个每次减去一点的饥饿代码。
#pragma strict
var Hunger:float;
var MaxHunger:float=100;
var timer:float;
function Start ()
{
Hunger=MaxHunger;
}
function Update ()
{
timer+=Time.deltaTime;
if(timer>=10)
{
Hunger-=1.0;
}
}
我的问题是我只想每5秒从饥饿中减去1。我已经尝试将它设置为每秒取0.2,但它不起作用。我只需要等待五秒钟再减去1.谢谢!
答案 0 :(得分:2)
您可以使用InvokeRepeating方法:
function SubtractHunger ()
{
Hunger -= 1.0;
}
function Start () {
Hunger = MaxHunger;
var seconds:int = 5;
InvokeRepeating("SubtractHunger", seconds, seconds);
}
// and then you don't need the Update function
或者,您可以使用timeLastSubtracted
变量或类似内容在Update
函数中进行检查:
var timeLastSubtracted:float;
function Update ()
{
if (Time.time >= timeLastSubtracted + 5) {
Hunger -= 1.0;
timeLastSubtracted = Time.time;
}
}