我正在创建一个游戏,其中玩家可以将特定任务分配给npc,并且随着任务复杂性,它将花费大量时间(复杂任务为5分钟,简单任务为1分钟)。为此,我使用Time.deltatime创建了一个计时器。
Starttime = Starttime + Time.Deltatime;
但是根据统一文档,deltatime是两帧之间的差异,所以现在PC游戏运行60帧,所以完成一分钟需要60帧,但是在移动设备上需要的时间比所需的时间长,所以请有人告诉我如何解决这个问题
答案 0 :(得分:2)
不要出于任何原因使用Time.deltaTime或任何类似的功能 -
对于Unity的初学者,所有计时器以及与时间相关的所有问题,只需使用调用
您的代码将如下所示......
void Start()
{
Debug.Log("user begins task .. must complete in 60 seconds");
Invoke("TimeIsUpForUser", 60f);
}
private void TimeIsUpForUser()
{
Debug.Log("time's up! user must be finished by now");
}
就这么简单。
举例来说,您的整个代码可能看起来像这样......
void Start()
{
ShowMiniPuzzleOnScreen();
Invoke("TimeIsUpForUser", 60f);
}
private void UserHasPlacedFinalPieceOfPuzzle()
{
MessageScreen("Congratulations! You get 100 coins!");
balance += 100;
CancelInvoke("TimeIsUpForUser");
}
private void TimeIsUpForUser()
{
HideMiniPuzzle();
PlaySadMusic();
MessageScreen("You suck! You are too slow. You lose 50 points.");
balance -= 50;
}