我正在开发一款关于团结的移动无尽跑步游戏。我的角色速度等于一个名为"速度":
var speed = 7;
GetComponent<Rigidbody> ().velocity = new Vector3 (0, 0, speed);
并希望使用C#将var(速度)每30秒增加4。有什么想法吗?
答案 0 :(得分:2)
在Unity中有很多方法可以做到这一点。
1 。在Update
函数中使用Time.deltaTime
使用它来递增变量
int speed = 7;
float counter = 0;
void Update()
{
//Increment Counter
counter += Time.deltaTime;
if (counter >= 30)
{
//Increment Speed by 4
incrementSpeed();
//RESET Counter
counter = 0;
}
}
void incrementSpeed()
{
speed += 4;
}
2 。与协程和WaitForSeconds
或WaitForSecondsRealtime
。
void Start()
{
StartCoroutine(incremental());
}
IEnumerator incremental()
{
while (true)
{
//Wait for 30 seconds
yield return new WaitForSeconds(30);
//Increment Speed
incrementSpeed();
}
}
void incrementSpeed()
{
speed += 4;
}
使用哪一个真正取决于您是否想要查看计数器。使用第二种解决方案,您无法看到计时器的状态。它会在每30秒后增加一次。这些是最基本的方式。