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

企业内部网站设计成都91获客

企业内部网站设计,成都91获客,百度推广步骤,直播软件app免费下载Optimizing Unity UI 本章讲探讨一些能够提升UGUI性能的优化方法。 1.Use more Canvases 一个Canvas的主要任务就是管理它层级下的所有UI元素#xff0c;并且通过Draw Call去渲染它们。其中Canvas一个重要的事儿就是对这些元素进行合批来减少draw call。但是如果对Canvas或…Optimizing Unity UI 本章讲探讨一些能够提升UGUI性能的优化方法。 1.Use more Canvases 一个Canvas的主要任务就是管理它层级下的所有UI元素并且通过Draw Call去渲染它们。其中Canvas一个重要的事儿就是对这些元素进行合批来减少draw call。但是如果对Canvas或者其下边的child元素进行了修改就会dirty这个Canvas导致Canvas的重制。Canvas的重制开销很大很容易引起性能的问题。Unity中很多东西都会导致Canvas的重制如果当一些操作发生时我们发现UI导致了CPU极大的开销就应该考虑用更多的Canvases。 一个常见的误区就是使用一个Canvas来制作UI。 如果只有一个Canvas当UI中有任何变化时它必须check每一个元素随之Canvas越来越复杂Check的开销也会越来越大。如果使用多个Canvas就可以当某个元素发生变化时只影响其所在Canvas会影响较少的元素进行重建从而减少性能开销。 多个Canvas的缺点是各Canvas之间不能合批因此应该是尽量保证相似的使用相同material的元素在同一个Canvas下。 2.Separate objects between static and dynamic canvases 可以根据更新的时机和频率把UI元素分成三组 Static 静态一直不会改变的UI元素比如背景图等 Incidental Dynamic动态可以改变但是只是在需要的时候会改变比如Button的press和hover响应 Continuous Dynamic持续动态持续动态改变例如动画元素 根据这个分组可以把UI元素放入三个不同的Canvas中这样可以降低Canvas重建的开销。 3.Disable Raycast Target for noninteractive elements 拥有Raycast Target的UI元素可以对ClickTaps等用户操作产生响应。GraphicsRaycaster会循环遍历去check哪个Raycast Target是响应目标关掉UI上并不需要的Raycast Target可以避免GraphicsRaycaster无意义的check从而减少开销。 4.Hide UI elements by disabling the parent Canvas Component 可以通过设置UI元素的所属Canvas是否enable来达到隐藏该Canvas下所有UI元素的目的优点是可以避免Canvas重建缺点是如果脚本中有Update(), FixedUpdate(), LateUpdate()或其他持续性的代码会依然被调用因为这只是使得Canvas不被渲染而已。 5.Avoid Animator Components 应该完全避免在UI中使用AnimatorAnimator会在每一帧中该UI元素的属性从而导致大量UI信息的重新生成。应该通过自己写tweening脚本或者一些插件来完成这些操作。 6.Explicitly define the Event Camera for World Space Canvases 在2D和3D中Canvas中的UI元素都可以用来产生交互响应这取决于这个Canvas的Render Moder设置为Screen Space (2D) 还是World Space (3D)。每当有响应时Canvas会通过其event Camera属性来确定使用哪个摄像机。2D Canvas默认设置为Main Camera但是3D默认设置为null。这会带来不必要的开销因为即使设置为null每次使用时也是使用Main Camera但是会调用FindObjectWithTag()函数。这个函数虽然没有Find函数开销大但是也是不能忽视的。所以如果使用3D模式要手动设置好合适的event Camera。 7.Dont use alpha to hide UI elements 把UI元素中Colour属性的alpha设为0依然会产生Draw Call应该通过IsActive来控制其是否隐藏另一种方法是使用Canvas Group使用Canvas Group可以控制所有Child的alpha值通过Canvas Group设置alpha为0后渲染时会剔除掉所有child 元素因此不会有Draw Call的开销。 8.Optimizing ScrollRects ScrollRect是移动游戏中常用的组件但是ScrollRect的性能会根据其大小有非常大的开销因为它需要不断的进行布局重建。接下来会介绍几条关于ScrollRect的优化。 8.1 Make sure to use a RectMask2D 使用scrolling UI最简单的一种方式可能就是将所需要展示的UI内容的Depth设置为低于ScrollRect单这是一种非常不好的实现方式因为整个Scroll Rect都会参与重建没有culling的过程。 使用RectMask2D脚本可以对超出bound的的部分进行剪裁它的消耗在于要计算哪些object需要剪裁掉但是要比把所有内容都渲染出来强多了。 8.2 Disable Pixel Perfect for ScrollRects Pixel Perfect是Canvas中的一个设置会强制要求UI元素在屏幕中要像素精准。对于持续动画和移动的物体这个设置有些没必要关掉这个设置可以节省ScrollRect的一些开销但是要注意的是这个设置是对整个Canvas的设置会对Canvas下的所有UI元素产生影响要确定其他元素可以接受不是Pixel Perfect。 8.3 Manually stop ScrollRect motion 当ScrollRect即使移动的速度非常慢每帧几个像素时也依然会重制。因此我们可以通过ScrollRect.velocity获取速度值判断其在低于某个速度范围下时就调用 ScrollRect.StopMovement()停止移动从而避免无谓的重建。 9.Use empty UIText elements for full-screen interaction 我们经常使用一个大UIImag将其设置为透明覆盖在屏幕上来作为透明遮罩强制用户点击最上层的弹框。但是这种操作有可能会打破batching更好的方式是使用一个不带字体和文字的UIText这样就不会有任何东西需要渲染但在bounding-box范围内依然可以交互响应。 10.Check the Unity UI source code  Check the documentation 可以查看UnityUI的源代码https://bitbucket.org/Unity-Technologies/ui. 如果我们对UI中一些问题不满意我们可以自己手动修改UI源代码重新编译后导入工程中。 上边只是列出了一些在文档中很少见或者非常重要的一些优化方法关于UI还有很多其他优化点本书也没办法都囊括进来可以查看文档 https://unity3d.com/learn/tutorials/temas/best-practices/guide-optimizing-unity-ui
http://www.pierceye.com/news/753671/

相关文章:

  • 百度入口的链接seo赚钱培训
  • 利川网站建设wordpress 文章音频
  • 对电子商务网站建设与管理的理解福州市建设工程造价管理网站
  • 网站登录系统内部错误建设机械网站案例分析
  • 网络营销网站建设培训乔拓云的品牌推广方案
  • 狼雨seo网站河北省建设集团有限公司网站首页
  • 如何建双注册网站一嗨租车网站建设的功能特色
  • 陕西正天建设有限公司网站wordpress 筛选
  • 产品展示网站方案2022年国内重大新闻
  • 网站的支付接口对接怎么做深圳品牌网站建设服务
  • 哈尔滨网站快速排名网站采集被降权
  • 做网站要钱吗学校网站建设调查问卷
  • 重庆网站建设招标网站建设网站建设教程
  • 权威的广州h5网站seo网站分析工具
  • 美食网站要怎么做游戏优化大师下载安装
  • vip解析网站怎么做的做网站需要注册商标多少类
  • 一般做网站宽高多少网页调用 wordpress 图片编辑器
  • 简述网站建设的基本过程word模板免费下载网站
  • 页面好看的蛋糕网站wordpress路由插件
  • 网站建站四种方案深圳网站建设维护
  • 企业网站优化的方案游戏网页设计图片
  • 烟台html5网站建设wordpress主题 亚马逊
  • 个人网站做电商wordpress.php扩张
  • c2c电子商务网站定制开发校园网建设网站特色
  • 企业网站制作公司有哪些做手机网站公司
  • 怎么做flash网站设计惠州做网站公司哪家好
  • 网站开发文档下载餐饮vi设计一套多少钱
  • 平湖网站建设公司克正规的网店平台有哪些
  • 网站建设销售求职网络营销推广引流方法
  • 深圳网站建设官网网站背景素材