unity3d Time 的使用

在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;
		}
	}
二:获取每一帧运行的时间:
	如下实现的就是以每秒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里面的代码要尽量优化,对于一些不是没一帧都需要判断的语句可以写成协同程序。
public IEnumerator Awake() {
		print(Time.time);
		yield return new WaitForSeconds(5);
		print(Time.time);
	}
Time里还有几个类似的方法还没有使用到,以后再完善。
													by:zxy





 
  
 
  

你可能感兴趣的:(unity3d Time 的使用)