UGUI —— Canvas(画布)

在使用Unity开发游戏项目中,UI部分通常有两种框架NGUI和UGUI,在Unity5.0版本以后Unity官方收编的NGUI的开发团队植入到Unity引擎内部,因为新开项目大都会抛弃使用NGUI,采用UGUI来开发。虽然NGUI中很多功能在UGUI下需要手动编码,但是UGUI对于渲染、层级、图集等方面对开发人员友好,个人强烈建议使用UGUI开发。Unity2019年出了新的UIWidgets支持游戏、APP、网页、PC一套部署,但是毕竟尚未推出正式版处于观望中。

Canvas三种渲染方式

  • Screen Space – Overlay:屏幕空间渲染方式。采用这种渲染方式,UI不依赖摄像机渲染,一直保证Canvas层级位于屏幕的最顶层。通常2D游戏会采用这种渲染方式,如果是3D游戏,某些界面上需要展示模型、特效的无法将模型、特效显示在UI前方
    Pixel Perfect: 可以使图像更清晰,但是有额外的性能开销,如果在有大量UI动画时,动画可能会不平顺
    Sort Order:深度值,该值越高显示越前面
  • Screen Space – Camera:屏幕空间– 摄影机,这种渲染方式依赖摄像机。因为是参照Camera,如果屏幕大小、分辨率、Camera视锥改变时UI平面会自动调整大小。如果Scene中的物件(GameObject)比UI平面更靠近摄影机,就会遮挡到UI平面,实际游戏开发中通常会采用这种方式。(在UI上显示3D模型)
    Plane Distance:与Camera的距离
    Sorting Layer:Canvas属于的排序层,在 Edit->Project Setting->Tags and Layers->Sorting Layers 进行新增,越下方的层显示越前面
    Order in Layer :Canvas属于的排序层下的顺序,该值越高显示越前面
  • World Space:世界座标空间:Canvas会被处理成一张画布(3D物体),开发者可以手动修改它的位Position、Scale、Rotation等参数

Canvas Scaler

和Canvas一起的组件,设置屏幕适配的方式。

  • Constant Pixel Size:根据Scale Factor参数等比缩放
  • Scale With Screen Size:
    Match Width Or Hight:根据屏幕宽或者高来进行适配。通常采用这种适配方案
    Expand:当屏幕分辨率大于参考分辨率时,选择变化较小的一个方向(横向还是纵向),作为放大Canvas Scale的标准,另一方向上的变化则是在整体缩放以后再进行补偿性的变化。此举旨在减少扩大分辨率时由于非等比扩大而对UI整体布局造成影响。适合制作较小标准尺寸,扩充到较大屏幕。
    Shrink:和Expand类似,但是更适合于缩小的情形。它会在屏幕尺寸缩小时,通过缩小CanvasScale尽量减少由于非等比缩小对布局产生的影响。按照影响较小的一个方向缩小的比例去缩小CanvasScale,然后再通过变形调整另外一个方向。
  • Constant Physical Size:根据物理比例来进行适配(从来没有使用过)

Graphic Raycaster

用于检测投向Canvas的射线

Ignore Reversed Graphics:忽略颠倒的图形的射线检测,即旋转180°后的图片不会与射线发生交互(检测)
Blocked Objects:会阻挡图形射线的对象类型(2D或(/和)3D对象,需要有collider组件)。
Blocked Mask:会阻挡图形射线的Layer。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值