zoukankan      html  css  js  c++  java
  • unity优化 — UI优化技巧

    界面操作一般会触发UI的开关或者隐藏显示,必然会造成UI重建。

     

    1.避免Active 和DeActive ,而采用控制Canvas组件的激活与关闭。

    2.不需要参与点击事件的Canvas取消激活Graphic Raycaster 脚本。

    3.仅用于显示的图片或者文本禁止勾选Raycast Target 脚本。

    4.持续性的UI动态效果特效,最好采用特效的方式制作,脱离UI系统。

    5.动态合静态的UI 要分开,分别挂上canvas。

    6.适当对UI界面做缓存,保证再次打开更快。

    7.界面初始化代码部分加上Profiler监测,统计代码效率。

    8.将复杂的界面拆成多个界面,比如Tab页点击切换时再动态加载。

    9.控制一帧内加载UI的数量,做好分帧加载策略。

     

    对比全屏界面的UI界面。 可以关掉3D摄像机,没有3D部分的渲染,效率必然会提升。

     

    战斗洁面奶是战斗时玩家可操作的界面,也是游戏中最敏感的界面,只要一丁点的额卡东玩家就能明显感知到,假设游戏战斗保持45FPS,那么留给每一帧的时间只有22ms,留给UI的只会更少。

    1、通过Profiler查看UI的渲染耗时,到底是卡在GPU还是渲染上。

    2、左边接受任务框或者右上方活动的UI转圈动画,最好用粒子特效来做。

    3、头顶文字称号和冒血伤害数字(1)最好不要使用UI 系统,使用SprteRenderer 和3DText实现。

    (1)使用UI系统的缺陷:摄像机位置角度发生变化需要实时修改UI的位置,必然会造成网格合并,而且UI系统本身效率没有3D的高。

    4、图文混排聊天,一帧只加载一个,避免消息太多造成卡顿。

    5、技能CD转圈不要每帧都更新,并且套上新的Canvas.

    6、界面中显示倒计时,一般最小单位是秒,最好不要每一帧都计算。

    7、战斗界面上左,上右、下左、下右、中左、中右、中间  都要挂上不同的canvas,避免网格重建影响太多。

    8、主界面首次打开如果比较慢,会影响Loading条的等待时间,可以考虑分帧加载UI。

     

    非战斗界面要比战斗界面的效率要求低一些,保持在30FPS就可以。

     

    1、非战斗界面最好设计成全屏UI、打开时将战斗的Camera隐藏,提高效率

    2、重点关注游戏对象的Active和 DeActive的数量

    3、界面上显示3D模型做好分帧加载

    4、滑动列表的滑动效率需要重点关注

    5、文本组件建议使用Text Mesh Pro 

     

  • 相关阅读:
    linux下内存检测工具valgrind
    c语言可变参数与宏定义
    rabbitmq学习之路-rabbitmqctl
    linux/mac下命令行rm回收站--rmtrash
    Python之路【第十一篇】: 进程与线程理论篇
    Python之路【第十一篇】: 进程与线程
    Git常用命令
    Python之路【第十篇】: python基础之socket编程
    Python之路【第九篇】:面向对象进阶
    Python之路【第八篇】:面向对象的程序设计
  • 原文地址:https://www.cnblogs.com/zhaolaosan/p/15226173.html
Copyright © 2011-2022 走看看