当前位置: 首页 > news >正文

深圳营销型网站建设服务在线网站建设平台

深圳营销型网站建设服务,在线网站建设平台,网站开发者常见问题,网站建设 400电话 广告大家好,我是阿赵。 这期来说一下Unity的TimeScale。 一、前言 Unity提供了Time这个类,来控制时间。其实我自己倒是很少使用这个Time,因为做网络同步的游戏,一般是需要同步服务器时间,所以我比较多是在使用System.Date…

大家好,我是阿赵。
这期来说一下Unity的TimeScale。

一、前言

  Unity提供了Time这个类,来控制时间。其实我自己倒是很少使用这个Time,因为做网络同步的游戏,一般是需要同步服务器时间,所以我比较多是在使用System.DateTime获取系统时间,再定一个时间间隔和服务器同步当前时间,来维持一个客户端和服务器的时间同步。
  不过Unity的Time方法也是有比较有用的时候,特别是Time.timeScale时间缩放这个属性,它可以整体的加快或者减慢甚至暂停Unity里面动画播放。
  不过这个TimeScale,也是会引起一些问题的,所以在使用之前,必须对它的影响范围做一个详细了解。

二、Demo

  TimeScale对Unity的所有动画组件都是起作用的,包括了Animation、Animator、粒子发射器等。接下来看看它对脚本运行的影响。
  这里写一个简单的Demo,实际看看TimeScale的变化时,一些我们比较关心的方法调用有什么影响。

using UnityEngine;public class TestTimeScale : MonoBehaviour
{private float passTime = 0;private float fixedPassTime = 0;private float updateTime = 0;private float fixedUpdateTime = 0;private float lateUpdateTime = 0;private float[] timeArray = new float[] { 0, 0.1f, 1, 3 };// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){passTime += Time.deltaTime;updateTime += 1;}void FixedUpdate(){fixedPassTime += Time.fixedDeltaTime;fixedUpdateTime += 1;}private void LateUpdate(){lateUpdateTime += 1;}void OnGUI(){GUILayout.BeginHorizontal();GUILayout.Box(Time.timeScale + "");for(int i = 0;i<timeArray.Length;i++){if(OneButton(timeArray[i] + "x")){Time.timeScale = timeArray[i];}}GUILayout.EndHorizontal();GUILayout.Label("Time.time:"+Time.time);GUILayout.Label("passTime:" + passTime);GUILayout.Label("fixedPassTime:" + passTime);GUILayout.Label("updateTime:" + updateTime);GUILayout.Label("fixedUpdateTime:" + fixedUpdateTime);GUILayout.Label("lateUpdateTime:" + lateUpdateTime);GUILayout.Label("Time.deltaTime:" + Time.deltaTime);GUILayout.Label("Time.fixedDeltaTime:" + Time.fixedDeltaTime);GUILayout.Label("Time.fixedTime:" + Time.fixedTime);GUILayout.Label("Time.fixedUnscaledDeltaTime:" + Time.fixedUnscaledDeltaTime);GUILayout.Label("Time.realtimeSinceStartup:" + Time.realtimeSinceStartup);}private bool OneButton(string content){return GUILayout.Button(content, GUILayout.Width(100), GUILayout.Height(40));}
}

在这里插入图片描述

  运行demo,会看到上面有几个调整TimeScale的按钮,分别把TimeScale设置成0、 0.1 、1 、3。然后下面有一些当前数值的变化显示。

三、分析

1、Update类

1.Update

  通过观察demo里面的updateTime 可以发现,Update方法的调用频率,是不会受到TimeScale的变化的影响的。

2.FixedUpdate

  通过观察demo里面的fixedUpdateTime 可以发现,FixedUpdate方法是受到TimeScale影响的,当TimeScale变成0的时候,值就不会增长了,当TimeScale值变大那时,调用的频率也会变快。

3.LateUpdate

  通过观察demo里面的lateUpdateTime 可以发现,LateUpdate方法调用不受TimeScale的影响。

2、时间运行类

1.Time.time

  这个时间是从开始游戏到当前帧开始的时间,从demo运行可以看出,这个时间是会受到TimeScale的影响的,当TimeScale变成0的时候,它就不会增长了。

2.Time.fixedTime

  这个时间是从游戏开始运行到最后一次FixedUpdate方法调用的时间,从上面可以指定,FixedUpdate是受到TimeScale的影响的,所以,Time.fixedTime同样也会受到TimeScale的影响。

3.Time.realtimeSinceStartup

  这个时间是从游戏开始运行到当前的实际时间。从demo可以看出,这个时间是不会受到TimeScale的影响的。所以如果想做一个不受TimeScale影响的计时器,可以使用这个。不过我还是更习惯于使用系统时间。

3、时间间隔类

1.Time.deltaTime

  这个时间是从上一帧到当前帧所过的时间。我们经常会使用speedTime.deltaTime来做一些准确限制速度的程序动画。
  从demo可以看出,Time.deltaTime是会受到TimeScale的影响的,TimeScale的值越大,Time.deltaTime的值也就越大。所以通过在UpDate方法里面计算speed
Time.deltaTime来做动画时,当调大了TimeScale的值,那么动画的速度也会变快。

2.Time.fixedDeltaTime

  从demo可以看出,Time.fixedDeltaTime是不会受到TimeScale的影响的,它默认是0.02,然后我们调节TimeScale的值,Time.fixedDeltaTime是不会变化的。
  值得注意的是,上面列举的所有参数,都是只读的,但是Time.fixedDeltaTime却是可读写的。这个是非常有意义的事情来的。如果我们使用speedTime.deltaTime来做动画,动画会跟随这TimeScale变快,但如果我们有一部分动画的速度不想跟随着TimeScale变化,那么就可以用speedTime.fixedDeltaTime来计算。而且我们还可以自己调节fixedDeltaTime的值,来单独控制这部分动画的快慢。

http://www.mmbaike.com/news/95976.html

相关文章:

  • 捡个杀手做老婆全集免费网站百度推广管家登录
  • 云端建站快车百度推广的广告靠谱吗
  • 旅游网站自己怎么做营销策划精准营销
  • 网站公司模板产品软文
  • github page做公司网站seo的最终是为了达到
  • 白云区手机版网站建设谷歌浏览器官网入口
  • 推荐一个做照片书的网站销售平台有哪些
  • 网站托管做的好的公司seo优化费用
  • wordpress提交百度站长seo综合查询接口
  • 海宁网站制作交换友情链接
  • 营销型网站有什么特点搜索引擎seo排名优化
  • 网上装修公司网站策划书网络营销的推广
  • 网站中了木马了怎么办seo权威入门教程
  • 秒收录的网站重庆seo全面优化
  • 做网站一般要多少钱设计公司网站模板
  • php网站开发教程下载百度联系方式人工客服
  • php网站怎么做的拼多多seo 优化软件
  • 电子商务网站建设ppt模板广州做网站的公司哪家好
  • 统一社会信用代码怎么查询甘肃省seo关键词优化
  • 建网站需要学习什么郑州品牌网站建设
  • 如何做国际网站产品宣传百度竞价专员
  • wordpress移动端导航栏上海网络关键词优化
  • 常州模板建站哪家好网站建设报价单
  • 做网站的目的建站abc
  • 网站开发的费用是怎么计算的崇左网站建设
  • 自己电脑做网站服务器广域网访问太原关键词优化报价
  • 做公司网站都需要什么资料外链官网
  • 网站开发示例seo自动排名软件
  • 简单大气好记的公司名称win7系统优化
  • 网站定制开发上海现在广告行业好做吗