首页 > (U3D)Time的使用

(U3D)Time的使用

Time类包含了一个重要的类变量deltaTime,它表示距上一次调用Update或FixedUpdate

所用的时间。 

因此通过它可以让游戏对象按照一个常速进行旋转,而不是依赖于它的帧频: 

function Update() 



   tranform.Rotate(0, 5 * Time.deltaTime, 0); 



 

同样地移动效果: 

function Update() 



   transform.Translate(0, 0, 2 * Time.deltaTime); 



 

如果想要一个值根据每帧的变化而变化(增加或减少) ,你应该使用 Time.deltaTime来

乘以这个值。这样才能使得变化的效果依赖于单位时间,而不是帧频。这不仅使得游戏的运

行独立于帧频,也使得运动的效果符合现实。 

同理,要让灯光的照射范围在每秒使半径增加 2个单位,可进行如下编码: 

function Update() 



   light.range += 2.0 * Time.deltaTime; 



 

但是在通过force来处理rigidbody时,一般情况下不要乘以 Time.deltaTime,因为 Unity

引擎已经为你进行了处理

 

2

IEnumerator wait(int seconds){

  yield return new WaitForSeconds(seconds);

 }

StartCoroutine(wait(2));  // 在Update() 中调用好像无效

在JS中可以直接用 yield WaitForSeconds(3);

 

3 定时器的使用

  1. using UnityEngine;   
  2. using System.Collections;   
  3. public class NewBehaviourScript : MonoBehaviour {   
  4. // Use this for initialization   
  5. void Start () {   
  6.    InvokeRepeating("LaunchProjectile", 1,5);//1秒后调用LaunchProjectile () 函数,之后每5秒调用一次   
  7. }   
  8. // Update is called once per frame   
  9. void Update () {   
  10.    if (Input.GetButton ("Fire")) {   
  11.     CancelInvoke();   
  12.    }   
  13. }   
  14. void LaunchProjectile () {   
  15.    print("hello");   
  16. }   
  17. }  

 

转载于:https://www.cnblogs.com/cavehubiao/p/3431762.html

更多相关:

  • Term::ProgressBar 模块是一个可以用于生成进度条的 Perl 模块。安装:cpan -i Term::ProgressBar最小脚本,展示如何最快学会使用该模块:#!/usr/bin/env perluse strict; use warnings; use Term::ProgressBar 2.00;my $max...

  • 当我们勾选了同步(Update Project)弹窗的 “Do not show this dialog in the future(以后不显示此对话框)” 的复选框☑   以后再次使用同步功能(Update Project)时 不会再出现这个弹窗(如下图),这就导致了我们无法修改Update Type和Clean workin...

  • mapper.xml文件,后台传入一个对象集合,另外如果是mysql数据库,一点在配置文件上加上&allowMultiQueries=true,这样才可以执行多条sql,以下为mysql:

  • 批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: 如果CUSTOMERS表中有1万条年龄大于零的记录,那么Session的find()方法会一下子加载1万个Customer对象到内存。当执行tx.c...

  • initializeGL函数由于是初始化,所以只调用一次 而resizeGL和paintGL会多次调用 resizeGL在正常的情况下,触发的条件是,窗口大小发生变化时,resizeGL被调用,之后会触发paint事件,从而调用paintGL()事件处理器。 paintGL在正常的情况下,只要你移动窗口的位置,就会马上触发pain...

  • 思考:在析构函数中delete this指针,运行下面代码会产生什么样的结果呢? #include   using namespace std;    class A{  public:  A(){  cout<<"A()"<

  • (1)如果用定时器的话,初始的时候注册一个定时器的回调函数,原型是 glutTimerFunc(unsigned int millis, void (*func)(int value), int value);         参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值); (2)写自己的回调函数 v...

  • 0x00 前置信息 VLC是一个非常庞大的工程,我从它的架构及流程入手进行分析,涉及到一些很细的概念先搁置一边,日后详细分析。 0x01 源码结构(Android Java相关的暂未分析) # build-android-arm-linux-androideabi/:第三方库。 # modules/:模块代码。 # modules/...