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;

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

  • 相关阅读:
    C#方法重载 -0024
    C#表达式体方法 (expression-bodied method )
    C# 匿名类型 -0022
    C# 不可变类型 -0021
    C# 属性 -0020
    C# readonly和const -0019
    C# 类的静态成员和实例成员 -0018
    C#中类和结构体的区别 -0017
    C#预处理器指令 -0016
    微信小程序TabBar定义和配置
  • 原文地址:https://www.cnblogs.com/chenyangsocool/p/6945889.html
Copyright © 2011-2022 走看看