一、旋转和缩放
- 定位成功后将 PlaneFinder(平面检测器)禁用 。

- 在 Assets 面板空白处右键,选择【导入包 > 自定义包...】,选中资料文件夹中的【旋转和缩放控制.unitypackage】完成导入。


- 选中【ModelsRoot】对象点击右键,在弹出的面板中点击【AR > 旋转和缩放控制】按钮。

- 根据需求调整控制参数。

二、UI界面
2.1 什么是UI?
UI也就是用户界面,指的是我们在使用手机、电脑、软件、APP 和网站时,眼睛能看到、手指能操作的所有视觉界面。
它包括页面布局、颜色搭配、文字字体、图标按钮、交互样式等一切呈现在屏幕上的内容。
2.2 画布
如果把搭建 UI 界面比作绘画:画按钮、写字、贴图,先要一张画纸。
在 Unity 里,这张 "画纸" 就是画布(Canvas)。所有 UI 元素都必须挂载在画布下,否则无法被玩家看见。
2.2.1 怎么创建 画布 ?
- 在层级视图空白处点击右键,在弹出的面板中选择【UI > 画布】。

- 层级里会出现【画布】,通常还会自动出现【事件系统】。
事件系统负责监听UI交互事件(如:鼠标点击、触屏滑动)。没有它,按钮点了也没反应。
2.3 渲染模式
所有 UI 控件必须放在 画布(Canvas)下才能渲染显示,画布的 渲染模式(Render Mode)决定 UI 在画面中的呈现方式。

(1)屏幕空间 - 覆盖(Screen Space - Overlay)
- UI 直接盖在游戏画面最上层,像血条、开始菜单
- 不需要指定摄像机
- 适合:菜单、血条/分数、弹窗
(2)屏幕空间 - 摄像机(Screen Space - Camera)
- UI 仍然贴着屏幕,但通过某个摄像机渲染
- 可以做出与 3D 物体的前后层次感
- 适合:需要和 3D 场景有遮挡关系的界面
(3)世界空间(World Space)
- UI 变成场景里真实存在的一块板子
- 可放在墙上、桌子上
- 适合:VR、场景电脑屏幕、角色头顶对话
2.4 UI 缩放
不同设备的屏幕尺寸与比例差异较大,同一按钮在电脑上大小合适,放到手机上可能偏小或撑满屏幕。而画布中的画布缩放器(Canvas Scaler),正是用于实现界面自适应适配的核心组件。

2.4.1 UI 缩放模式
该组件是 UGUI 实现多分辨率自适应的核心,提供三种 UI 缩放模式,对应下拉菜单内三个选项:

(1)恒定像素大小(Constant Pixel Size)
****工作逻辑:****UI 元素像素尺寸固定,不受屏幕分辨率影响。
****表现效果:****设备分辨率越高,UI 在画面中视觉尺寸越小;分辨率越低,UI 视觉尺寸越大。
(2)屏幕大小缩放(Scale With Screen Size)【项目最常用】
****工作逻辑:****设置一个参考分辨率,Unity 会根据当前屏幕分辨率与参考分辨率的比值,自动整体缩放画布。
****表现效果:****以设计稿尺寸为基准,在不同手机、电脑屏幕上自动缩放,保证界面比例统一。
(3)恒定物理大小(Constant Physical Size)
****工作逻辑:****按照现实物理尺寸(厘米 / 英寸)渲染 UI,依靠设备 DPI 信息计算像素。
****表现效果:****无论设备分辨率高低,UI 在物理尺寸上大小基本一致。

2.5 图像
用来显示图片:图标、头像框、背景、血条填充、装饰边框等。
2.5.1 怎么创建 图像?
- 在Canvas对象上点击右键,在弹出的面板中选择【UI > 图像】。


2.5.2 图像常用属性
|------------|-----------------------------------------------------------------------------|
| 参数 | 说明 |
| 源图像 | 要显示的图片(精灵 Sprite)。把图片拖进去 |
| 颜色 | 给图片染色 |
| 图像类型 | 1. ·简单:普通显示 2. ·切片:九宫格拉伸(做可拉伸按钮背景很常用) 3. ·平铺:重复铺满 4. ·填充:按比例填充(做血条、冷却转圈很好用) |
| 保留纵横比 | 勾选后强制维持图片原始宽高比例 |
| 射线检测目标 | 控制该图像是否接收鼠标 / 触摸点击事件 |
2.5.3 图片拖不进【源图像】怎么办?
图像需要的是精灵(Sprite),不是随便一张图。
- 把 png/jpg 导入【项目】窗口。


- 选中这张图,在检查器把【纹理类型】改成:精灵 (2D 和 UI),点击【应用】。

- 再拖到图像的「源图像」上。

2.6 文本-TextMeshPro
TextMeshPro 是 Unity 官方推荐的新一代文本渲染系统,用于替代旧版 UI Text,在清晰度、排版、样式、多语言上全面更强,是现代 Unity 项目的标准文本组件。
2.6.1 怎么创建 文本?
- 在Canvas对象上点击右键,在弹出的面板中选择【UI > 文本-TextMeshPro】。

- 第一次使用【文本-TextMeshPr】需要【TMP】插件

- 在检查器的文本输入框里输入内容,例如【阅读历史】。

2.6.2 中文乱码如何处理?
- 导入【资料 > Founts】中文字体库。

- 顶部菜单打开【窗口 > TextMeshPro > 字体资源创建工具】面板。

- Source Font File:拖入【YouSheBiaoTiHei-Regular.ttf】,点击 【Generate Font Atlas】(生成字体图集)。


- 将刚生成的字体拖入到【FontAsset】。

2.6.3 文本常用属性
|------------|----------------------------------------------|
| 参数 | 说明 |
| 字体资源 | 用于渲染文字的字体文件;如需正常显示中文,必须使用包含中文点阵的字体资源 |
| 字体大小 | 设置文字的显示字号大小 |
| 顶点颜色 / 面颜色 | 控制文字主体颜色 |
| 对齐 | 设置文字在文本框内的对齐方式,包括水平(左 / 中 / 右)和垂直(上 / 中 / 下) |
| 自动换行 | 控制文字长度超出文本框宽度时是否自动换行显示 |
| 溢出 | 设置文字超出文本框范围时的处理方式(如截断、省略、溢出显示等) |
| 启用自动大小 | 开启后会自动调整字体大小,让文字完整适配到文本框内 |
2.7 原始图像
原始图像:使用纹理(Texture),适合网络图片、摄像头画面、渲染纹理(小地图、监控画面)。
2.8 面板
面板:本质上是一块带半透明背景的底板,常用来当容器:设置窗口背景、背包底、把几个按钮归成一组。
2.9 切换
切换:就是开关 / 复选框:开或关、选中或未选中。
2.10 滑动条
滑动条:可拖动,用来调节连续数值。例子:音量、亮度、进度、血条。
2.11 滚动条
滚动条:通常在长列表右侧或底部,表示滚到哪里。单独用得少,多和【滚动视图】搭配。新手做界面时,直接用【滚动视图】更省事。
2.12 滚动视图
滚动视图:是用于实现内容超出显示区域时可滑动查看的核心组件,比如聊天记录、背包列表、道具图鉴、长文本等,都靠它实现上下 / 左右滚动效果。
2.13 按钮-TextMeshPro
****按钮:****是 UI 中最常用的交互控件,用于接收玩家的点击、触摸等操作,并触发对应的逻辑事件。
2.13.1 按钮常用属性
|----------------------|-----------------------------------------------|
| 参数名称 | 核心说明 |
| 可交互(Interactable) | 控制按钮是否可被点击、响应交互;关闭后按钮会自动进入置灰状态,无法触发点击事件 |
| 过渡(Transition) | 定义按钮在不同交互状态下(正常、悬停、按下、禁用)的视觉反馈,给玩家明确的操作感知 |
| 目标图形(Target Graphic) | 指定按钮的过渡效果(变色、换图)要作用的目标图像组件,默认绑定按钮自身的 Image 组件 |
| 点击事件(On Click ()) | 按钮的核心交互逻辑入口,用于绑定点击按钮后需要执行的自定义功能 / 逻辑 |
2.14 下拉列表-TextMeshPro
下拉列表:是选择类交互控件,点击后展开选项菜单,玩家从中选择一项,常用于模式选择、难度切换、语言选择、分辨率设置等场景。
2.15 输入-TextMeshPro
****输入框:****是用于接收玩家文字输入的交互控件,允许玩家通过键盘输入文本、数字、密码等内容,是人机交互中最基础的文本输入组件。
三、声音播放
3.1 Unity音频三大核心组件
Unity所有声音播放逻辑,都围绕三个核心模块展开,先理清分工,避免后续混淆:
1. 音频片段(AudioClip)
音频资源本体,就是我们导入的背景音乐、音效文件,仅作为资源素材存储,无法直接播放,必须依托AudioSource组件调用。
2. 音频音源(AudioSource)
声音播放控制器,挂载在游戏物体身上,负责加载音频、执行播放/暂停/停止、调节音量、循环播放等所有操作,是播放声音的核心组件。
3. 音频监听器(AudioListener)
声音接收设备,相当于游戏里的"耳朵"。默认场景中主相机(Main Camera)自带该组件,一个场景必须有且仅有一个生效的AudioListener,否则所有声音都无法听见。
3.2 创建声音组件
- 导入【资料 > 介绍.mp3】音频文件。

- 在 层级视图 单击右键,在弹出的面板中选择【音频 > 音频源】。

- 将【介绍.mp3】音频文件指定到【AudioClip】。

3.3 声音常用参数
|---------|---------------|----------------------------------------|
| 参数名称 | 英文名 | 核心功能说明 |
| 音频片段 | Audio Clip | 绑定需要播放的音频资源,未绑定音频文件则无法发出声音 |
| 唤醒时播放 | PlayOnAwake | 游戏物体激活、场景加载完成后,自动播放绑定的音频 |
| 循环播放 | Loop | 音频播放结束后自动重复播放,实现无限循环 |
| 音量 | Volume | 控制当前音源音量大小,取值范围 0(静音)~1(最大音量) |
| 音调/播放速度 | Pitch | 控制音频播放速度与音调,1为原速原声;大于1提速变尖锐,小于1降速变低沉 |
| 空间混合度 | Spatial Blend | 切换2D/3D音效模式:0为全局2D音效,1为空间3D音效,中间值为混合音效 |
| 静音 | Mute | 临时静音当前音源,勾选后无声音输出,不改变原有音量数值 |
| 空间音效开启 | Spatialize | 开启高精度3D空间音效模拟,强化声音方位、距离衰减、空间立体感 |
| 音频优先级 | Priority | 设置音频播放优先级(0最高、256最低),音频通道过载时优先播放高优先级音频 |
四、视频播放
- 导入【资料 > 中华建筑之美.mp4】视频和【UI播放视频.unitypackage】文件。

- 在【层级视图】空白处单击右键,在弹出的面板中选择【UI > 原始图像】。

- 给【原始图像】对象添加【视频 > 视频播放器】。

- 将【中华建筑之美.mp4】文件赋值给【视频播放器 > 视频剪辑】。

- 给【原始图像】对象添加【AR > UI播放视频】。


五、创建动画控制器
-
新建一个新的场景。
-
在 层级 面板在单击右键,在弹出的面板中选择【3D 对象 > 立方体】,创建一个Cube对象。

- 选中上面创建的【Cube】对象,点击【窗口 > 动画 > 动画】按钮,创建一个动画控制器。

- 再弹出的动画控制器面板,点击 "Create" 按钮,创建一个动画片段。

六、动画原理
6.1 帧
动画的原理与电影的原理相同,是由一些连续的静态图片构成的,这些图片以一定的速度连续播放,(播放的速度称为帧率)根据人眼有视觉暂留的特性,就会认为画面是连续运动的,这些静态的图片就是帧。

6.2 帧率
是指每秒钟显示多少帧图像,通常以"帧每秒"(FPS)来衡量。帧率决定了视频、游戏或动画的流畅度和细腻程度。(Unity动画的帧率是60FPS)。
常见的帧率有:
- 24 FPS:电影行业的标准帧率,适用于大多数电影和剧集。
- 30 FPS:常用于电视节目、网络视频、部分游戏和一些流媒体平台。
- 60 FPS:常见于高质量游戏和高清视频,能提供更加流畅的画面。
120 FPS、144 FPS、240 FPS等:高端游戏和专业电竞中使用。
七、动画片段
****动画片段:****是 Unity 中最基础的动画资源单元,用来存储一段独立的、可复用的动画数据,比如角色走路、攻击、物体旋转、开门、UI 动效等。
****核心作用:****存储关键帧动画数据:位置、旋转、缩放、材质参数、骨骼权重等。
- 启动【关键帧记录模式】系统会自动记录您的移动、旋转、缩放等操作。

- 移动【Cube】对象,系统会自动记录您的移动操作,并生成【关键帧】。

八、动画状态机
- 在为对象创建动画时,系统会自动生成一个【动画控制器】,用于管理多个动画片段的播放逻辑。



- 创建多个动画片段。

- 动画层级:为动画添加更多的层级,层级高的动画播放会覆盖低层级的。

- 参数:为动画状态机添加控制状态切换的参数。

- 点击参数面板中的 +号,创建状态切换参数。


- 添加切换连线。


- 选中上面绘制的"连线",设置动画切换参数。


- 选中动画片段,设置动画播放是否循环。

九、切换动画播放
**1.**在Canvas对象上点击右键,在弹出的面板中选择【UI > 按钮-TetMeshPro】。

- 在按钮上添加一个【鼠标单击】事件。


- 选择【Animator > SetTringger(string)】

- 设置需要播放动画的名称。

- 点击【播放按钮】预览最终效果。

十、案例练习
(1)完成建筑案例的UI交互。
(2)完成建筑出生动画制作。
