目录
1.canvas
Canvas 是 Unity 中用于构建和管理 UI(用户界面) 的核心组件。它是所有 UI 元素的容器,负责渲染和管理 UI 元素的布局、交互和显示。Canvas 是 Unity UI 系统的基础,任何 UI 元素(如按钮、文本、图像等)都必须放在 Canvas 下才能正确显示。
Canvas 的主要功能
UI 元素的容器
Canvas 是所有 UI 元素的父对象,UI 元素必须作为 Canvas 的子对象才能显示。
例如,按钮、文本、图像等 UI 元素都需要放在 Canvas 下。
渲染 UI 元素
Canvas 负责将 UI 元素渲染到屏幕上。
它使用 RectTransform 组件来管理 UI 元素的位置、大小和旋转。
屏幕空间和世界空间
Canvas 可以工作在两种模式下:
Screen Space - Overlay:UI 元素直接渲染在屏幕上,不受场景中摄像机的影响。
Screen Space - Camera:UI 元素渲染到指定的摄像机,可以受摄像机视角的影响。
World Space:UI 元素作为 3D 对象存在于场景中,可以与其他 3D 对象交互。
分辨率自适应
Canvas 提供了 Canvas Scaler 组件,可以根据屏幕分辨率自动调整 UI 元素的大小和布局,确保 UI 在不同设备上显示一致。
事件系统
Canvas 与 Unity 的 EventSystem 配合,处理 UI 元素的交互事件(如点击、拖拽等)。
Canvas 的组件
RectTransform
所有 UI 元素都使用
RectTransform
组件(继承自Transform
),用于控制 UI 元素的位置、大小、旋转和锚点。锚点(Anchors)和轴心点(Pivot)是
RectTransform
的核心概念,用于实现 UI 元素的动态布局。
Canvas Scaler
用于根据屏幕分辨率自动缩放 UI 元素,支持以下模式:
Constant Pixel Size:UI 元素的大小固定为像素值。
Scale With Screen Size:UI 元素根据屏幕分辨率按比例缩放。
Constant Physical Size:UI 元素的大小固定为物理尺寸(如英寸)。
Graphic Raycaster
用于检测 UI 元素的交互事件(如点击、拖拽等)。
只有带有
Graphic Raycaster
的 Canvas 才能响应 UI 事件。
Canvas 的渲染模式
Canvas 有三种渲染模式,适用于不同的场景需求:
Screen Space - Overlay
UI 元素直接渲染在屏幕上,覆盖在所有场景内容之上。
不受摄像机影响,适合简单的 2D UI。
示例:游戏中的 HUD(血量、分数等)。
Screen Space - Camera
UI 元素渲染到指定的摄像机,可以受摄像机视角的影响。
适合需要与场景内容交互的 UI。
示例:游戏中的对话框、菜单。
World Space
UI 元素作为 3D 对象存在于场景中&#x