Q&A——UI

UI

Q1:能否在NGUI多分辨率适应方面提供一些解决方案或者思路?

多分辨率适应涉及到以下几个方面:

  1. 布局。通常可以通过 NGUI 中的 Anchor 组件来实现,能够保证 UI 到屏幕上指定锚点的距离;
  2. UI 背景图比例。通常我们建议将背景图的长宽比放大,以适配不同长宽比的屏幕,但要注意两边需要留空,或者保留可被裁掉的元素;
  3. UI 的整体缩放。可以通过 UIRoot 组件的 Scaling Style 来统一配置。

需要提醒的是,不同类型的游戏对布局的需求通常也不同,因此还是需要结合实际开发情况来做调整。

Q2:请问UWA有什么办法可以快速定位到NGUI中是哪一个Panel在LateUpdate中触发了重建操作吗?

目前,UWA在线报告中并没有功能可以快速并且精准定位NGUI中到底是哪个Panel在触发UIMesh的重建。对于该类问题,我们均是进驻到开发团队中,通过在Editor中不断查看和测试项目的具体UI制作来定位这个问题。这本身是一个相当繁琐的问题,在我们优化了许多项目之后,我们将其困难之处归为以下三点:

  1. UIMesh重建的诱因多样化。Widget移动、Atlas穿插、Active/Deactive状态切换、Alpha变为0等等,这些情况均可能引起UIMesh的重建;

  2. UIMesh重建的类型多样化。不少情况重建是可以在渲染画面中看到的,但仍有大量情况,其Widget是在视域体外部的(比如不再使用且被缓存了的HUD、没有显示但也没有Deactive的任务、背包面板等);

  3. 大量团队都在使用NGUI,但绝大多数开发人员对NGUI的重建机制并不透彻掌握。因此,我们在发现其重建问题后,还要详细解释其原因,才能防止研发团队后续研发过程中再犯此类问题。

上述文字并不是对该问题的直接回答,而是我们关于NGUI UIMesh重建问题的思考。如果你的项目也被UIMesh重建问题所困扰,希望上述几点可以对你有所启发。

UI

Q3:请问UGUI的重绘是针对于拥有Canvas组件的Canvas物件,还是针对于拥有CanvasRenderer组件的Panel物件?

UGUI中,Canvas组件可以认为是容器,Image,Text等组件(都需要CanvasRenderer组件)可以认为是元素。在Unity5.2版本之前,在网格重建时,会以Canvas为单位,即一个Canvas中所有的元素最终都是合并到一个Mesh中的,而其中可以被合并渲染的元素则被合在同一个SubMesh中。在Unity5.2版本之后由于引入了多线程的网格合并方式,据我们所知,目前并没有官方的原理解释。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值