Canvas Scaler
这个控件主要负责 Canvas 的显示效果,其中 UI Scale Mode 较为重要。
可选择的模式有3种,分别是 Constant Pixel Size,Scale With Screen Size 和 Constant Physical Size。
一、Constant Pixel Size 恒定像素大小
当选择 Constant Pixel Size 的时候,即完全根据 Canvas 设置的大小进行显示,无论在何种分辨率下,大小均为 Unity 中设置的大小(不能很好地适应不同的分辨率)。
Scale Factor:保持大小的比例。原图为 100x100,初始大小1就等于 100x100,原来的2倍就等于 200x200。
Reference Pixels Per Unity:100 表示Unity里的1单位大小表示 100 像素。
二、Scale With Screen Size 跟随屏幕尺寸比例
当选择 Scale With Screen Size 的时候,可以根据屏幕的大小进行缩放。在这种模式下有三种不同的缩放方式。
Reference Resolution 属性主要作为参考分辨率的大小,在这个分辨率下进行设计,随后根据不同的缩放模式适应不同的分辨率。
Screen Match Mode 包括 Match Width Or Height、Expand、Shrink 三种模式:
Match Width Or Height:根据 Canvas 的宽度或高度,或者一定的比例进行缩放。
Expand:Canvas 不会小于设置的分辨率大小。
Shrink:Canvas 不会大于设置的分辨率大小。
在分辨率自适应模式下,可能会带来物体缩放的问题,如果缩放不正常,可以手动更改 LocalScale 为(1,1,1)进行部分修正。
三、Constant Physical Size 恒定物理尺寸
当选择 Constant Physical Size 模式的时候,则根据设定好的物理大小进行展示,根据不同分辨率的适应性不是很好。
Graphic Raycaster
射线检测组件,每个 Canvas 都需要添加这个组件,用于获取对 UGUI 的控制和操作。当禁用这个组件的时候,用户将无法获取到控件对控件进行操作。
Ignore Reversed Graphics :是否忽略控件的正面和反面方向,都接受射线的检测,勾选则是。
Blocking Objects:屏蔽指定类型的(物理)对象,使它们不参与射线检测。渲染模式不为 ScreenSpaceOverlay 时起作用。可选值有:
None:不屏蔽任何物理对象
Two D:屏蔽 2D 物理对象(即具有 2D碰撞体的对象)
Three D:屏蔽 3D 物理对象(即具有 3D碰撞体的对象)
All:屏蔽所有物体对象
Blocking Mask:使屏蔽对象中的指定层不参与射线检测。在渲染模式不为 ScreenSpaceOverlay,且 Blocking Objects 不为 None 的时候起作用。