Canvas属于Unity的UGUI,UGUI提供了强大的可视化编辑,大大提高了GUI的开发效率。

Canvas是所有UI组件的父物体,也就是说每一个UI组件都必须在Canvas下,作为Canvas的子物体,当你创建一个UI控件时,如果在Hierarchy下没有Canvas组件的话,Unity会帮你自动创建一个Canvas,并将你的UI控件置于Canvas下,Unity也会自动创建EventSystem,这个对象用来确定诸如鼠标输入的事件,这对 UI 组件来说也至关重要,比如按钮。

Unity 3d 帆布 unity3d canvas_属性介绍

 

Canvas

Unity 3d 帆布 unity3d canvas_Unity 3d 帆布_02

Render Mode:Canvas的渲染方式,包括以下三种:

Unity 3d 帆布 unity3d canvas_UI_03

Unity 3d 帆布 unity3d canvas_Unity 3d 帆布_04

Unity 3d 帆布 unity3d canvas_属性介绍_05

  1. Screen Space - Overlay  ----  这种渲染模式表示 Canvas 下的所有的 UI 控件永远位于屏幕的前面 , 不管有没有相机 , UI元素永远在屏幕最前面 ,主要是2D效果。
  2.  Screen Space - Camera  -----  这种渲染模式 Canvas 和 摄像机之间有一定的距离 , 可以在摄像机和 Canvas 之间播放一些粒子特效,主要是3D效果。
  3.  World Space  ----  这种模式下 Canvas 就和普通的 3D 物体一样了 , 可以控制它的大小,旋转,缩放等 , 一般用来做血条。

Pixel Perfect:勾选"Pixel Perfect",在Canvas中的模糊效果消失,变得相对清晰。

Sort Order:"Sort Order"的值用来决定不同的Canvas的层级效果。指这个画布所在的排序图层,先对图层进行排序,然后对每个图层的某个元素进行Order in Layer的排序。

 

 

Canvas Scaler(Script)

Canvas Scaler组件用于设置处于不同组件下Canvas画布中的元素的缩放模式。

 

 

Unity 3d 帆布 unity3d canvas_unity3D_06

UI Scaler Mode : 设置UI的缩放模式:

Unity 3d 帆布 unity3d canvas_unity3D_07

  • Constant Pixel Size : 无论处于什么分辨率下Canvas下的UI控件都保持原来的大小。
  • Scale With Screen Size :在当前模式下,Canvas画布下的UI控件会随着不同的分辨率而进行一定的缩放,以达到合理的大小。 在这种模式下有一个选项: Reference Resolution :设置当前窗口的分辨率,通常设置自己需要运行游戏的分辨率。Match : 设置缩放的方向比例,当值为零的时候则只在宽度改变是进行缩放,当为1时则只在改变高度的时候进行缩放。

Reference Pixels Per Unit:每个sprite设置中,都有一个设置是单位转换的,sprite的像素表现到unity编辑器中,一般默认是100:1,也就是100像素等于1 unit,所以如果直接在sprite中调节100变到10,则图片变大十倍。

 

 

Graphic Raycaster(Script)

  主要用于UI上的射线检测。

Unity 3d 帆布 unity3d canvas_属性介绍_08

 Ignore Reversed Graphics :是否忽略反方向的UI图形,比如当一张图片反转到180+度后,它还需不需要进行射线检测。

 Blocking Objects :可以阻挡射线的物体,有 None , Two D , Three D , All 可选。

 Blocking Mask:可以阻挡射线的元素 (这里是我猜的 - -),有 Nothing , Everything , Default , Water 等可选。