unity3d协同不同设备的代码
unity3d的脚本代码中,Update()函数每一帧都会运行一次。
假设有这两台设备:一台超级四路泰坦计算机,一台旧手机,它们一起运行一个赛跑游戏,Update()函数每一帧运行一次,游戏中的小人就会向前跑一米。
很明显,超级计算机的帧率,也就是fps会比旧手机要高得多,假设超级计算机fps平均值为100,旧手机的fps平均值为30,那么假设超级计算机运行的游戏中的小人每秒钟向前跑100米,而旧手机中的小人只会跑30米。这种是不公平的,那么在不同设备下,如何让两个小人跑的速度一样?很简单,只要在速度上乘以一个Time.deltaTime就可以了。
具体代码如下:
private int speed = 1;
transform.Translate (Vector3.down * speed * Time.deltaTime);
其中speed为自定义的一个值。
Time.deltaTime为系统提供的方法,其值为只读,为1/fps,那么,我们通过计算可以看是否有协同的作用。
超级计算机:
每一秒调用update函数100次,speed*Time.deltaTime*100=1*1/100*100=1;
手机:
每一秒调用update函数30次,speed*Time.deltaTime*30=1*1/30*30=1;
由此可见,可以实现不同设备间的同步。(即,让运行速度快的设备上的小人跑的慢一点,让运行设备快的设备跑的慢一点)
** Then I looked up at the sky and saw the sun **
posted on 2017-06-05 17:02 chenyangsocool 阅读(207) 评论(0) 编辑 收藏 举报