定 价:55 元
丛书名:
- 作者:柯健
- 出版时间:2025/5/1
- ISBN:9787121501562
- 出 版 社:电子工业出版社
适用读者:本书适合作为高等院校虚拟现实技术应用、游戏开发等专业核心课程的教材,也可作为希望系统学习Unity虚拟现实开发的初学者和爱好者的参考用书。
- 中图法分类:TP317.6
- 页码:268
- 纸张:
- 版次:01
- 开本:16开
- 字数:429(单位:千字)
本书以任务驱动方式全面系统地讲解了Unity 2023的核心功能模块,带领学生从零开始,逐步掌握Unity虚拟现实开发技能。本书共12章,第1章介绍了Unity开发环境的搭建和Unity主要界面的功能;从第2章到第11章介绍了Unity中的主要功能模块,包括地形系统、音频系统、光照系统、粒子系统、脚本、输入系统、动画系统、物理系统、导航寻路系统和图形用户界面等;第12章介绍了平台发布的相关设置。每章围绕具体任务展开,通过实践操作帮助学生掌握Unity的各项功能。同时,本书以一个完整的实战项目贯穿始终,学生在学习过程中将逐步完成该项目,最终通过项目实践巩固所学知识,从而达到学以致用的目的。这种设计不仅能让学生系统地掌握Unity的核心功能,还能培养实际开发能力,为后续的独立开发打下坚实基础。本书适合作为高等院校虚拟现实技术应用、游戏开发等专业学生的教学用书,也可以作为希望系统学习Unity虚拟现实开发的初学者和爱好者的参考用书。
柯健:讲师,硕士研究生,Adobe认证教师。具有10多年从事《影视特效处理》课程的教学经验,积累了丰富的教学资源。
第1章 Unity基础 1
1.1 Unity简介 1
1.1.1 Unity的应用领域 1
1.1.2 Unity版本 2
基础任务1:注册Unity账户 2
基础任务2:下载、安装和
设置Unity Hub 3
基础任务3:下载、安装
Unity编辑器 5
课堂任务1:创建Unity项目并测试
开发环境 6
1.2 Unity界面 9
1.2.1 工具栏 9
课堂任务2:自定义窗口布局 10
1.2.2 场景视图 10
课堂任务3:创建并操作游戏对象 12
1.2.3 层级窗口 15
1.2.4 游戏视图 15
1.2.5 检查器窗口 16
课堂任务4:设置游戏对象父子
关系 16
1.2.6 项目窗口 18
1.2.7 控制台窗口 18
1.3 基本概念 19
1.3.1 场景 19
1.3.2 游戏对象 19
1.3.3 组件 19
课堂任务5:为游戏对象添加组件 20
1.3.4 预制件 20
课堂任务6:创建预制件 21
1.4 资源管理 21
1.4.1 资源类型 21
课堂任务7:导入3ds Max模型 23
课堂任务8:导入Maya模型 25
课堂任务9:导入Blender模型 27
1.4.2 资源包 30
课堂任务10:导入本地资源包 30
课堂任务11:通过Asset Store下载
并导入资源包 30
课堂任务12:使用Unity Package
Manager导入资源包 30
第2章 地形系统 32
2.1 创建地形及设置 32
项目任务1:创建地形 35
2.2 地形工具 37
2.2.1 提升/降低地形工具 37
课堂任务1:使用提升/降低地形
工具 38
2.2.2 绘制孔洞工具 38
课堂任务2:使用绘制孔洞工具 39
2.2.3 设置高度工具 40
课堂任务3:使用设置高度工具 40
2.2.4 平滑高度工具 41
课堂任务4:使用平滑高度工具 41
2.2.5 图章地形工具 42
课堂任务5:使用图章地形工具 43
2.2.6 绘制纹理工具 43
课堂任务6:使用绘制纹理工具 44
项目任务2:绘制石湖地形 45
2.3 创建树 49
2.3.1 创建树枝 50
课堂任务7:创建树和树枝 53
2.3.2 创建树叶 55
课堂任务8:创建树叶 57
2.4 绘制树 59
项目任务3:添加树 60
2.5 添加花草 61
项目任务4:添加花草 63
项目任务5:添加水 64
拓展任务1 65
第3章 音频系统 66
3.1 音频系统概述 66
3.2 音频文件格式 67
3.3 音频剪辑 67
3.4 Audio Source组件 68
3.5 Audio Mixer组件 70
3.6 Audio Listener组件 70
项目任务6:添加背景声音和音效 71
第4章 光照系统 73
4.1 光照方式 73
4.1.1 直接光照和间接光照 73
4.1.2 实时光照和烘焙光照 73
4.2 天空盒 74
4.2.1 6面天空盒着色器 74
4.2.2 立方体贴图天空盒着色器 75
4.2.3 全景天空盒着色器 75
4.2.4 程序化天空盒着色器 76
课堂任务1:制作天空盒 77
项目任务7:制作石湖天空盒 79
4.3 光源 81
4.3.1 灯光 81
课堂任务2:设置三种灯光模式 83
4.3.2 自发光物体 84
课堂任务3:制作自发光物体 84
4.3.3 环境光 85
课堂任务4:实现环境光照明 86
4.4 全局光照 86
4.4.1 烘焙全局光照 86
课堂任务5:使用光照贴图 87
课堂任务6:使用光照探针 88
课堂任务7:使用反射探针 89
4.4.2 实时全局光照 90
课堂任务8:实现实时全局光照 90
项目任务8:设置场景光照 91
拓展任务2 91
第5章 粒子系统 92
5.1 粒子系统概述 92
5.2 Particle System 93
5.2.1 Particle System概述 93
5.2.2 Particle System模块 95
课堂任务1:制作五彩缤纷的气泡 101
课堂任务2:制作飞溅的火花 103
课堂任务3:制作旋转的魔法阵 106
项目任务9:添加落叶效果 108
课堂任务4:制作烟花 113
课堂任务5:制作火焰 116
课堂任务6:制作飞溅的水花 120
5.3 Visual Effect Graph 124
5.3.1 编辑界面 124
5.3.2 工作流程 125
5.3.3 基本概念 125
项目任务10:制作飞舞的蝴蝶 129
拓展任务3 135
第6章 脚本 136
6.1 脚本概述 136
6.1.1 脚本语言 137
6.1.2 脚本编辑器 137
6.1.3 脚本、类、组件、游戏对象
之间的关系 137
6.2 脚本操作 138
6.2.1 创建脚本 138
6.2.2 挂载脚本 138
6.2.3 卸载脚本 138
6.3 命名空间 138
6.3.1 命名空间概述 138
6.3.2 常用命名空间 139
6.4 常用脚本类 139
6.4.1 Debug类 139
课堂任务1:设置Debug类的
Log方法 140
课堂任务2:设置Debug类的
DrawLine方法 142
6.4.2 MonoBehaviour类 144
课堂任务3:设置MonoBehaviour类
的主要事件方法执行顺序 145
6.4.3 GameObject类 147
课堂任务4:GameObject类的应用 150
6.4.4 Transform类 152
课堂任务5:Transform类的应用 152
第7章 输入系统 155
7.1 输入系统概述 155
课堂任务1:安装Input System包 156
7.2 基本概念 157
7.3 工作流程 159
7.3.1 直接读取设备状态 159
课堂任务2:直接读取设备状态 159
7.3.2 使用嵌入动作 160
课堂任务3:使用嵌入动作 160
7.3.3 使用动作资产 162
课堂任务4:使用动作资产 163
7.3.4 使用动作资产和
Player Input组件 168
课堂任务5:使用动作资产和
Player Input组件 169
项目任务11:创建动作资产 171
第8章 动画系统 175
8.1 动画系统概述 175
8.2 动画工作流程 175
8.3 动画剪辑 176
8.3.1 按来源分类 176
项目任务12:创建编辑动画剪辑 177
8.3.2 按动画类型分类 179
项目任务13:导入人形动画 180
项目任务14:导入通用动画 183
8.4 动画控制器 184
8.4.1 状态机 184
项目任务15:创建设置状态机 185
8.4.2 混合树 187
项目任务16:创建混合树 188
8.5 Animator组件 191
项目任务17:设置Animator组件 191
第9章 物理系统 192
9.1 物理系统概述 192
9.2 碰撞器 192
9.2.1 盒状碰撞器 193
9.2.2 胶囊碰撞器 194
9.2.3 球体碰撞器 194
9.2.4 地形碰撞器 195
9.2.5 车轮碰撞器 195
9.2.6 网格碰撞器 196
项目任务18:设置场景中游戏对象的
碰撞器 197
9.3 刚体 198
9.3.1 Rigidbody组件 198
9.3.2 Constant Force组件 199
课堂任务1:使用Rigidbody组件和Constant Force组件 200
9.3.3 碰撞操作矩阵 201
课堂任务2:添加碰撞事件和触发
事件 201
9.4 角色控制器 203
项目任务19:控制第三人称角色 203
第10章 导航寻路系统 207
10.1 导航寻路系统概述 207
10.2 工作流程 208
10.3 导航寻路系统组件 208
10.3.1 Nav Mesh Agent组件 208
10.3.2 Nav Mesh Obstacle组件 209
10.3.3 Off Mesh Link组件 210
10.3.4 NavMeshSurface组件 211
课堂任务1:自动导航到鼠标单击的
位置 212
课堂任务2:在固定位置之间巡逻 215
项目任务20:将NPC导航到指定
位置 217
项目任务21:在给定范围内随机
移动 219
第11章 图形用户界面 221
11.1 UI系统概述 221
11.2 Canvas组件 222
11.3 Rect Transform组件 223
课堂任务1:使用Rect Transform
组件 223
11.4 可视化组件 225
11.4.1 TextMeshPro- Text组件 225
课堂任务2:使用TextMeshPro-Text
组件 226
11.4.2 Image组件 227
11.5 交互组件 228
11.5.1 Button组件 228
11.5.2 Toggle组件 229
11.5.3 Slider组件 230
11.5.4 TextMeshPro-Input Field
组件 230
11.6 事件系统 232
项目任务22:设计开始界面 232
项目任务23:设计系统菜单界面 236
项目任务24:实现对话系统 242
拓展任务4 251
第12章 平台发布 252
12.1 生成设置 252
12.2 玩家设置 253
12.2.1 图标 253
12.2.2 分辨率和演示 254
12.2.3 启动图像 255
12.2.4 其他设置 256
项目任务25:设置并发布项目 260