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

门户网站做重庆微信网站建设价格

门户网站做,重庆微信网站建设价格,网页版梦幻西游金色什么伙伴比较好,网站建设招聘系统UI耗时函数 1.1 Canvas.SendWillRenderCanvases 这个函数是由于自身UI的更新,产生的耗时 1. 这里更新的是vertex 属性,比如 color、tangent、position、uv,修改recttransform的position、scale,rotation并不会导致顶点属性改变…

UI耗时函数

1.1 Canvas.SendWillRenderCanvases

这个函数是由于自身UI的更新,产生的耗时

1. 这里更新的是vertex 属性,比如 color、tangent、position、uv,修改recttransform的position、scale,rotation并不会导致顶点属性改变,因为顶点的position是根据pivot的偏移决定的,而改变其size、pivot、anchor,则会修改UI的transform属性,从而引发重建,还包括替换图片,更新文本等

2. 优化建议:隔帧更新

1.2 Canvas.BuildBatch & EmitWorldScreenspaceCameraGeometry 

 网格重建包含了UI更新,比如recttransform位置的改变,虽然没有UI更新,但有网格重建

1. Canvas.BuildBatch:UI元素改变导致需要重新build mesh 时,主线程调用该函数发起网格合并。

2. 合并的过程在子线程中实现,如果网格过于复杂,出现了主线程的等待,则耗时会被统计到

EmitWorldScreenspaceCameraGeometry这个函数里面

3. unity 会把同一个canvas下的所有UI合并成一个mesh,根据层级的不同,分成多个submesh,所以尽可能合批,减少submesh,减少drawcall

4. 优化建议:增加合批、动静分离

1.3 SyncTransform

对于UI元素调用SetActive(false改成true)会导致:

该Canvas下所有的同级UI元素触发SyncTransform,从而导致较高的耗时。

 

该Canvas的父Canvas下的同级UI元素触发SyncTransform

该UI元素同级的canvas下的UI元素不会触发SyncTransform

一句话:同级及父级下的UI元素,除了canvas 都会SyncTransform

优化建议:通过设置local scale=0/1来实现相同的效果

1.4 EventSystem.Update

EventSystem组件主要负责处理输入、射线投射以及发送事件、UI的创建会自动创建相关组件处理UI点击事件。raycast target 不用就关闭它

DrawCall优化

2.1 合并图集

尽量整合并制作图集,从而使得不同U元素的材质图集一致。图集中的按钮、图标等需要使用图片的比较小的UI元素,完全可以整合并制作图集。当它们密集地同时出现时,就有效降低了DrawCall

2.2 重叠打断合批

在同一Canvas下、材质和图集一致的前提下,要避免重叠时的层级穿插。简单概括就是,应使得符合合批条件的UI元素的“层级深度”相同;

这里的重叠,是UI元素重叠,而不是Recttransform 的重叠

2.3 Z!= 0

当UI元素的Z!=0时,也会产生合批被打断的情况

加载卸载api

1.1 Shader 耗时

Shader的解析和编译耗时一般是指,在Shader资源被加载进内存后触发的Shader.Parse()和Shader.CreateGPUProgram两种API的耗时

shader在进入一个场景的时候,是把该场景的shader一次性全部加载进来,可以通过shader变体集来优化

如果一个shader 重复打进ab包内,当每个ab包被加载的时候,就会产生一种耗时

1.2 Resources.UnloadUnusedAssets

Resources.UnloadUnusedAssets为Unity遍历所有资源的(gameobject、mono对象)引用情况并卸载Unused对象的API,一般在场景切换时由Unity自动触发或由开发者手动调用。耗时主要体现在遍历上

优化方法:

1. 减少material和粒子数量,这样会减少mono对象的数量

2. 使用assetbundle.unload、resources.unloadasset 先卸载一部分资源

resources.unloadassets:只能用于卸载resource.load的单个资源,比如材质球,纹理,等不能用来卸载gameobject、assetbundle、component,因为它们是复杂的资源。

3. 如果不切换场景,尝试在每5-10分钟调用一次该方法,释放内存

1.3 异步加载优先级

异步加载是很多项目中场景切换时加载资源的做法,但往往受Application.backgroundLoadingPriority这一API的默认设置限制而效率低下

异步方法:

Scenemanager.LoadSceneSync、Scenemanager.UnLoadSceneSync

Assetbundle.LoadAssetSync、Resources.LoadAssetSync

异步加载优先级Application.backgroundLoadingPriority:限制主线程的集成时间,单帧内最长可用异步操作时间,unity 中默认设置为BelowNormal,异步加载是在后台加载线程中进行数据读取和反序列化,然后在主线程中对其调用,调用的方式,取决于加载的资源类型,比如Texture 、Meshes 是上传到GPU对其绘制, audio clips 准备 playing.

  • ThreadPriority.Low - 2ms
  • ThreadPriority.BelowNormal - 4ms
  • ThreadPriority.Normal - 10ms
  • ThreadPriority.High - 50ms

体现到profiler中的函数为Application.IntegrateAssetslnBackground的耗时
优化方向:
异步加载时处于战斗场景:设置调高会增加主线程耗时,可能影响性能
异步加载时处于加载界面:建议设置调高,尽量缩短加载时间

1.4 加载和卸载AssetBundle

加载assetbundle的方法:

Load From Memory:

Load From File:
Load From Stream:
DownLoadHandlerAssetBundle:

压缩格式:

BuildAssetBundleOptions.None:使用LZMA算法压缩
BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4算法压缩
LZMA:stream-based,只支持顺序读取,加载需要将整个包解压
LZ4:chunk-based,支持随机读取,加载速度快
 

1.5 实例化和销毁对象

频繁大量的实例化和单次实例化过长都是可能困扰开发者的性能问题,而缓存池、分帧加载等策略和技巧可能获得良好的优化效果。

http://www.yayakq.cn/news/576750/

相关文章:

  • 福建公司网站开发电商代运营
  • 网站建设 福田交城有做网站的吗
  • 网站建设遵循的原则个人免费建站的网站
  • 国家建设工程信息网站网站制作时如何分析竞争对手
  • 哪个网站可以做记录视频用wordpress做的博客
  • 织梦cms小说网站采集惠州网站优化
  • 网站资质优化网站界面设计需要
  • 做红包网站长治网站建设电话
  • 建筑工程网络图视频教程襄樊seo排名
  • 滁州网站建设哪个好点服务器维护内容
  • 大丰做网站找哪家好关于建设网站的合作合同
  • 上海网站维护合肥网站代运营公司有哪些
  • 网站免费高清素材软件小游戏公司网站怎么优化
  • 国家城乡住房建设厅网站网站右侧广告
  • 辽宁沈阳网站建设自己做的网站上出现乱码怎么修改
  • php网站开发案例教程现在不流行做网站了么
  • 国内购物网站哪个最好网站优化月总结
  • 南昌网络营销网站网站建设帖子
  • 环保类网站模板免费下载WordPress博客页显示
  • 对网站设计的建议简单网站建设课程
  • wordpress建企业网站教程html表格编辑器
  • 淘客app网站是怎么做的文创产品设计方案范本
  • 价格对比网站开发做淘宝客网站能赚到钱吗
  • 电子商务网站的建设流程是怎样的深圳网站seo哪家快
  • 成都装修建材网站建设西安企业网站建设哪家好
  • 哪个网站做h5比较好sae wordpress 4.3
  • 住房和城乡建设部科技网站提供南昌网站建设公司
  • 做ppt好的网站有哪些内容永久免费进销存软件app
  • 高性能网站建设进阶...在线网页游戏传奇
  • 推广活动策划方案范文中山短视频seo教程