Unity3d Time.deltaTime 和帧率问题
Unity3d Time.deltaTime and framerate issue
我正在创建一个游戏,玩家可以在其中将某些任务分配给 npc,并且由于任务的复杂性,它会花费那么多时间(复杂任务 5 分钟,简单任务 1 分钟)。为此,我用 Time.deltatime.
创建了一个计时器
Starttime = Starttime + Time.Deltatime;
但是根据 unity docs deltatime 是两帧之间的差异所以现在在 PC 游戏上是 运行 在 60 帧上所以它需要 60 帧来完成一分钟但是在手机上它需要比需要更长的时间,所以请谁能告诉我如何解决这个问题
永远不要出于任何原因使用 Time.deltaTime 或任何类似功能。
对于 Unity 初学者,对于所有计时器和与时间有关的所有问题,只需使用 Invoke
您的代码将如下所示...
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;
}
我正在创建一个游戏,玩家可以在其中将某些任务分配给 npc,并且由于任务的复杂性,它会花费那么多时间(复杂任务 5 分钟,简单任务 1 分钟)。为此,我用 Time.deltatime.
创建了一个计时器Starttime = Starttime + Time.Deltatime;
但是根据 unity docs deltatime 是两帧之间的差异所以现在在 PC 游戏上是 运行 在 60 帧上所以它需要 60 帧来完成一分钟但是在手机上它需要比需要更长的时间,所以请谁能告诉我如何解决这个问题
永远不要出于任何原因使用 Time.deltaTime 或任何类似功能。
对于 Unity 初学者,对于所有计时器和与时间有关的所有问题,只需使用 Invoke
您的代码将如下所示...
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;
}