Optimizing Unity UI(一):A guide to optimizing Unity UI

版本检查: 2017.3-难度: 高级

优化由UnityUI驱动的用户界面是一项技术。硬性和快速的规则很少见;相反,必须仔细评估每种情况,同时考虑系统的行为。优化任何UnityUI时的核心张力是平衡draw calls和批batching成本。虽然某些常识技术可以用于减少一种或另一种,但是复杂的UI必须进行权衡。

然而,正如其他地方的最佳实践一样,优化UnityUI的尝试应该从分析开始。在尝试优化UnityUI系统之前,首要任务是找到所观察到的性能问题的确切原因。UnityUI的用户遇到四类常见的问题:

  • Excessive GPU fragment shader utilization (i.e. fill-rate overutilization) 过多的cpu资源被 shader 占用
  • Excessive CPU time spent rebuilding a Canvas batch 过多的cpu时间用于重新生成画布批次
  • Excessive numbers of rebuilds of Canvas batches (over-dirtying) Canvas批次的修复数量过多。
  • Excessive CPU time spent generating vertices (usually from text) 过多的cpu时间用于生成顶点

原则上,可以创建一个UnityUI,其性能受到发送到GPU的draw calls数量的限制。然而,在实践中,任何项目重载GPU的draw calls更有可能受到填充率的过度使用。

本指南将讨论UnityUI的基本概念、算法和代码,并讨论常见的问题和解决方案。它分为五章:

  1.  The Fundamentals of Unity UI 定义了UnityUI特有的术语,并讨论了为呈现UI而执行的许多基本过程的细节,包括构建批处理几何图形。强烈建议读者从本章开始。
  2. The Unity UI profiling tools 一章讨论使用开发人员可用的各种工具收集分析数据。
  3. The Fill-rate, Canvases and input 本章讨论了如何提高UnityUI的画布和输入组件的性能。
  4. The UI controls 一章讨论UI文本、滚动视图和其他特定于组件的优化,以及一些不适合其他地方的技术。
  5. The Other techniques and tips 一章讨论了一些不适合其他地方的问题,包括UI系统中的一些基本技巧和解决“棘手问题”的方法。

UI Source Code

请始终记住,UnityUI的图形和布局组件完全是开源的。它们的源代码可以在 Unity’s Bitbucket repository, under UI.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值