zoukankan      html  css  js  c++  java
  • 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;

    由此可见,可以实现不同设备间的同步。(即,让运行速度快的设备上的小人跑的慢一点,让运行设备快的设备跑的慢一点)

  • 相关阅读:
    mysql InnoDB 索引小记
    Linux shell 脚本小记
    Java中Integer的源码学习
    nginx小记
    位运算小结
    Redis小结
    CSS中nth-child和nth-of-type的简单使用
    Linux awk小记
    mysql小记--基础知识
    让44.1版本的sketch打开更高版本的sketch文件
  • 原文地址:https://www.cnblogs.com/chenyangsocool/p/6945889.html
Copyright © 2011-2022 走看看