Canvas解读

345 阅读2分钟

Canvas,俗称画板,主要的作用是用于盛装unity中"UI"控件。注意,这里的UI控件指的是下图中的控件。如,"Text"、"Image"。

如果没有Canvas容器直接创建UI控件,那么unity会默认给UI控件创建一个Canvas容器,如下图所示直接创建Image
游戏中看到弹窗、设置等界面,基本都是基于Canvas开发搭建的界面

Canvas Inspector面板解读 Canvas继承自拥有Behaviour,默认拥有RectTransform、Canvas、CanvasScaler、GraphicRaycaster组件.开发中一般只修改配置Canvas、CanvasScaler

Canvas组件解读 RenderMode有三种,分别是ScreenSpace-Overlay、ScreenSpace-Camera、WorldSpace ScreenSpace-Overlay:Canvas覆盖整个屏幕,屏幕只显示Canvas的内容。无论Canvas之外的内容如何放置都不会在"Game"视图显示。如下图3个Cube物体,Game视图中只显示Canvas内容

ScreenSpace-Camera:Canvas放置在相机前面、填充屏幕,可以显示非Canvas的内容。如果没有配置渲染相机RenderCamera,则和ScreenSpace-Overlay一致,只显示Canvas内容。物体必须放置在RenderCamera照射Canvas的范围内方可见,否则物体依然不可见。

WorldSpace:Canvas被认为是普通的GameObject物体,可修改Canvas的React Transform组件。"Game"视图的显示则按照EventCamera照射范围内且未被遮挡则显示物体,否则则不可见

PixelPrefect:完美像素,主要适用于图片不同分辨率的机型下图片清晰适配,尽可能使图片清晰,但是涉及性能开销。 SortOrder:图层顺序,数值越高,显示等级越高。高数值会挡住低数值的图层 TargetDispaly:此设置使Canvas渲染到指定的显示中。支持的辅助显示器(例如监视器)的最大数量为8

RenderCamera:渲染相机,只有ScreenSpace-Camera模式有。如果没设置,则和ScreenSpace-Overlay类似,只显示Canvas内容。

CanvasScaler组件 UIScaleMode: ConstantPixelSize:固定像素大小,不会根据设备的屏幕尺寸进行缩放

ScaleWithScreenSize:根据屏幕的尺寸进行缩放

ConstantPhysicalSize:固定尺寸大小,不会根据设备的屏幕尺寸进行缩放.一般适用于PC端的产品,移动端不使用

ScaleFactor:画布缩放比例 ReferencePixelsPerUnit:单位像素量 ReferenceResolution:参考分辨率。X指横向分辨率(宽度)尺寸,Y指纵向分辨率(高度)尺寸,默认X:800,Y:600. ScreenMatchMode:屏幕匹配样式。Match值范围为0~1,0表示完全匹配屏幕宽度,1表示完全匹配屏幕高度,默认0.5 MatchWidthOrHeight:宽高匹配 Expand:自扩张匹配 Shrink:收缩