unity3d Time 的使用

来源:互联网 发布:ubuntu下wine中安装qq 编辑:程序博客网 时间:2024/06/06 03:51

在U3D脚本中需要使用一些时间类去实现一些连续的移动等效果,所以顺便查看了一些Time类的使用:

一:获取当前程序运行的时间:

Time.realtimeSinceStartup;Time.time;获取程序运行时间单位是秒。
Time.timeSinceLevelLoad;获取当前场景运行的时间。

可以利用这个固定的时间在每一段固定的时间内做一个操作:
void Start() {lastInterval = Time.realtimeSinceStartup;frames = 0;}void OnGUI() {GUILayout.Label("" + fps.ToString("f2"));}void Update() {++frames;float timeNow = Time.realtimeSinceStartup;if (timeNow > lastInterval + updateInterval) {fps = frames / timeNow - lastInterval;frames = 0;lastInterval = timeNow;}}
<span style="font-family: Arial, Helvetica, sans-serif;">二:获取每一帧运行的时间:</span>
如下实现的就是以每秒10单位位移
void Update() {float translation = Time.deltaTime * 10;transform.Translate(0, 0, translation);}
OnGui里面不可以使用Time.delatTima,因为OnGui每帧可以被多次调用。
三:设置帧速
比如说设置视频的帧数:
public void Awake() {Time.captureFramerate = 25;}

四:一定时间延时的实现:
WaitForSeconds(5.0F);
由于要考虑程序的运行效率,所以在UpData里面的代码要尽量优化,对于一些不是没一帧都需要判断的语句可以写成协同程序。
<pre name="code" class="csharp">public IEnumerator Awake() {print(Time.time);yield return new WaitForSeconds(5);print(Time.time);}
Time里还有几个类似的方法还没有使用到,以后再完善。
<span style="white-space:pre"></span>by:zxy




0 0
原创粉丝点击