Unity3d Time.deltaTime和帧速率问题

时间:2016-05-15 11:55:07

标签: c# unity3d unityscript unity5

我正在创建一个游戏,其中玩家可以将特定任务分配给npc,并且随着任务复杂性,它将花费大量时间(复杂任务为5分钟,简单任务为1分钟)。为此,我使用Time.deltatime创建了一个计时器。

Starttime = Starttime + Time.Deltatime;

但是根据统一文档,deltatime是两帧之间的差异,所以现在PC游戏运行60帧,所以完成一分钟需要60帧,但是在移动设备上需要的时间比所需的时间长,所以请有人告诉我如何解决这个问题

1 个答案:

答案 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;
 }