虚拟现实技术与开发
打造直观友好的用户交互界面
UGUI:Unity 4.6推出的新UI系统,借鉴NGUI设计
学习重点:Pivot、Anchor、RectTransform、Canvas、EventSystem、各种界面组件
Canvas:所有UI组件绘制的画布,脱离画布UI组件不可用
| 模式 | 说明 | 应用场景 |
|---|---|---|
| Screen Space - Overlay | UI蒙在屏幕上 | 纯UI界面 |
| Screen Space - Camera | UI蒙在摄像机上 | UI与3D物体结合 |
| World Space | UI在世界空间中 | 3D场景中的UI(如广告牌) |
Canvas Scaler:设置UI在设备屏幕上的适配方式
| 方式 | 说明 |
|---|---|
| Constant Pixel Size | 固定像素尺寸 |
| Scale With Screen Size | 以宽度为标准缩放(最常用) |
| Constant Physical Size | 固定物理尺寸 |
Panel:容器控件,用于分组管理UI组件
EventSystem:创建Canvas时自动创建,处理UI事件
| 组件 | 功能 |
|---|---|
| Event System | 事件系统组件(管理整个场景事件) |
| Standalone Input Module | 独立输入模块(键盘鼠标) |
| Touch Input Module | 触控输入模块(触摸屏) |
重要:如果去掉Event System前的勾,整个场景事件系统不起作用,Button点击无反应
Image:显示图片的UI组件
| 类型 | 说明 |
|---|---|
| Simple | 简单显示 |
| Sliced | 切片(九宫格,边界不变) |
| Tiled | 平铺(重复填补) |
| Filled | 填充(配合Fill Amount做特效) |
| 方法 | 说明 |
|---|---|
| Horizontal | 水平填充 |
| Vertical | 垂直填充 |
| Radial 90 | 径向90度填充(左下角圆心) |
| Radial 180 | 径向180度填充(底边中点圆心) |
| Radial 360 | 径向360度填充(中心圆心) |
应用场景:血条、进度条、技能冷却等效果
OnClick():按钮点击事件,使用委托机制
Anchor:控件在父对象上的定位参考点,实现屏幕自适应
RectTransform中点击按钮打开Anchor Presets:
屏幕大小改变时,控件四角与对应锚点的距离保持不变
| 控件 | 功能 |
|---|---|
| Toggle | 开关控件(复选框) |
| Slider | 滑动条(进度、音量) |
| Scrollbar | 滚动条 |
| Dropdown | 下拉菜单 |
| InputField | 文本输入框 |
| RawImage | 纹理贴图(显示RenderTexture) |
| ScrollView | 滚动视图 |
提示:多数控件是复合控件,可组合使用实现复杂界面
操作题:实现用户登录界面(年龄、性别、籍贯、兴趣调查)和音乐播放选单界面