当前位置:  开发笔记 > 编程语言 > 正文

为什么时间按三角洲时间?

如何解决《为什么时间按三角洲时间?》经验,为你挑选了1个好方法。

我正在制作一个使用统一的游戏并使一些物体旋转到位.我四处寻找如何完成这项工作并找到了解决方法.--->

 public class Rotator : MonoBehaviour {

 int speed = 2;

// Update is called once per frame
void Update () {

    transform.Rotate(new Vector3(15, 30, 45) * Time.deltaTime *speed);

  }
}

现在我的问题是,为什么我要做"*Time.deltaTime"?请解释这一行.

谢谢你,罗姆



1> george.zakar..:

要了解为什么必须使用Time.deltaTime,首先需要了解游戏引擎的高级流程.

基本上,游戏是一种应用程序,它需要不断地等待来自玩家的输入并对该输入做出反应并渲染场景.每个游戏的核心都有一个游戏循环,只要应用程序正在运行,它就会处于活动状态.这可以很简单:

while(active) 
{
  update(); // react to player's input/update player position etc
  render(); // render the scene
}

正如你所看到的那样,循环中的代码一直被执行,直到玩家的动作导致循环终止(也许他点击了游戏菜单中的'退出').在Unity中,在游戏循环中调用附加到所有游戏对象的所有脚本的更新.

根据应用程序运行的机器,在给定的时间范围内可以有不同的更新次数,例如,您可以根据机器配置改变帧速率.如果您没有办法将所有更新以某种方式同步到真实的物理时间,那么这将非常麻烦.

为此,您在Unity Script中使用Time.DeltaTime.这只是一个参数,它告诉您自上次调用脚本的Update以来经过了多长时间.

要专门回答您的问题,将旋转更新与deltaTime相乘可以确保无论帧速率如何,对象的旋转速度都相同.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有