目录
第1章从虚拟现实到Unity1
1.1虚拟现实概述1
1.2Unity概述2
1.2.1初识Unity2
1.2.2Unity发布平台4
1.2.3Unity开发产品4
1.2.4按维度划分游戏类型5
1.3Unity的下载和安装6
1.3.1Unity版本6
1.3.2在线安装Unity9
1.3.3离线安装Unity24
1.3.4安装指定版本Unity25
1.4第一个Unity实例26
习题32
第2章Unity虚拟现实场景创建34
2.1Unity编辑器34
2.1.1标题栏和菜单栏34
2.1.2工具栏36
2.1.3界面面板组成37
2.1.4界面布局37
2.1.5Scene面板38
2.2Unity虚拟现实项目目录结构41
2.2.1项目目录结构及作用41
2.2.2项目编译顺序43
2.3Unity虚拟现实项目框架44
2.4虚拟对象创建和编辑44
2.4.1对象创建44
2.4.2对象编辑45
2.5实例49
2.5.1创建“简单3D虚拟场景”49
2.5.2创建“简单Doom虚拟场景”53
习题55
第3章Unity脚本57
3.1Unity脚本基础57
3.1.1Unity脚本语言57
3.1.2Unity脚本开发工具58
3.1.3Unity脚本编译62
3.1.4Unity脚本开发流程65
3.1.5Unity脚本生命周期65
3.2Unity脚本常用类69
3.2.1MonoBehaviour类70
3.2.2Vector向量类71
3.2.3Transform类73
3.2.4Time类77
3.2.5Input类81
3.3实例86
3.3.1交互控制飞机飞行86
3.3.2控制飞机快速转向90
习题91
第4章地形系统93
4.1资源包93
4.1.1资源包的概念93
4.1.2资源包的分类93
4.1.3资源商店95
4.1.4导入资源包96
4.1.5包管理器97
4.2地形创建编辑102
4.2.1导入地形资源包102
4.2.2创建Terrain地形102
4.2.3绘制编辑地形103
4.2.4风区109
4.2.5更多地形资源包110
4.3摄像机平滑跟随及快速对齐111
4.4实例: Terrain地形综合应用111
习题113
第5章游戏对象生命周期114
5.1游戏对象114
5.1.1游戏对象概述114
5.1.2游戏对象Inspector面板114
5.1.3GameObject类和gameObject实例115
5.2创建游戏对象115
5.2.1创建基本3D对象116
5.2.2修改3D对象属性116
5.3预制件117
5.3.1预制件概述117
5.3.2创建预制件118
5.3.3原始预制件和预制件变体118
5.4实例化游戏对象119
5.4.1场景中对象的实例化119
5.4.2预制件的实例化121
5.4.3私有变量的序列化122
5.5资源动态加载123
5.5.1资源动态加载概述123
5.5.2资源动态加载方法123
5.5.3Resources资源动态加载124
5.6销毁游戏对象126
5.7外部模型导入127
5.7.1导入模型127
5.7.2贴图烘焙128
5.7.3父子化层级131
5.8实例: 5×5墙体实例进阶——骰子墙体134
习题135
第6章物理引擎、碰撞器、刚体140
6.1物理引擎140
6.1.1物理引擎概述140
6.1.2NVIDIA PhysX物理引擎141
6.2碰撞器141
6.2.1碰撞器概述141
6.2.2碰撞器分类142
6.2.3碰撞器参数143
6.2.4碰撞器添加144
6.3物理材质144
6.3.1物理材质概述145
6.3.2创建物理材质145
6.3.3编辑物理材质145
6.3.4为对象附物理材质146
6.4刚体148
6.4.1刚体概述148
6.4.2刚体参数148
6.4.3刚体组件添加149
6.4.4刚体的属性及方法149
6.5实例153
6.5.1发射炮弹击倒骰子墙体153
6.5.2层间碰撞过滤155
习题157
第7章碰撞检测160
7.1碰撞检测概述160
7.1.1碰撞检测概念160
7.1.2碰撞检测原理161
7.2碰撞器种类161
7.2.1Static Collider161
7.2.2Rigidbody Collider161
7.2.3Kinematic Rigidbody Collider161
7.2.4Trigger161
7.3碰撞检测实现方法162
7.3.1碰撞检测条件162
7.3.2实体碰撞检测162
7.3.3触发碰撞检测166
7.3.4射线碰撞检测169
7.3.5角色控制器碰撞检测176
7.4实例: 对象跟踪鼠标单击位置177
习题179
第8章动画系统181
8.1Unity动画系统概述181
8.1.1Unity新旧版动画系统181
8.1.2新旧版动画系统切换181
8.2Mecanim新版动画系统182
8.2.1Mecanim动画系统概述182
8.2.2动画剪辑183
8.2.3Animation视图184
8.2.4Animator组件189
8.2.5Avatar人形骨架190
8.2.6动画控制器191
8.2.7Animator视图192
8.3Legacy动画系统203
8.3.1动画导入203
8.3.2动画分割204
8.3.3Animation组件208
8.4实例: 角色进出木屋动画208
习题214
第9章资源216
9.1音频216
9.1.1音频概述216
9.1.2音频系统216
9.1.3音频设置220
9.1.4程序控制音频221
9.2灯光225
9.2.1灯光概述226
9.2.2灯光分类226
9.2.3创建灯光227
9.2.4程序控制灯光229
9.3材质与贴图232
9.3.1材质233
9.3.2着色器233
9.3.3贴图236
9.3.4程序控制材质与贴图237
9.4摄像机245
9.4.1摄像机概述245
9.4.2摄像机属性245
9.4.3多摄像机247
9.5实例247
9.5.1多摄像机分屏——导览小地图247
9.5.2第一人称和第三人称视角切换248
习题249
第10章UI设计251
10.1传统GUI: IMGUI251
10.1.1GUI概述251
10.1.2IMGUI实现251
10.2NGUI253
10.3UGUI254
10.3.1UGUI概述254
10.3.2Canvas画布255
10.3.3UI控件的布局和定位260
10.3.4常用控件262
10.3.5事件系统268
10.4UI Toolkit基础285
10.4.1UI Toolkit概述285
10.4.2UI Toolkit组成285
10.5项目发布285
10.6实例288
10.6.1为丛林木屋添加背景音乐控制288
10.6.2UI Tookit入门案例289
习题296
第11章AI设计298
11.1游戏中的AI298
11.1.1游戏中的AI体现298
11.1.2游戏AI算法298
11.2AI漫游技术299
11.3射击游戏AI漫游实现299
11.4导航寻路技术304
11.5实例: 自动导航寻路305
习题313
第12章数据库应用314
12.1环境准备314
12.1.1数据库插件的安装获取314
12.1.2引入数据库插件316
12.2登录和注册317
12.3实例: 游戏数据的获取及更新“排行榜”336
习题341
第13章综合案例342
13.1单机版坦克大战游戏342
13.1.1创建地形342
13.1.2场景搭建342
13.1.3游戏逻辑346
13.23D版贪吃蛇游戏351
13.2.1总体设计351
13.2.2模型导入351
13.2.3场景搭建353
13.2.4游戏逻辑353
13.2.5游戏测试363
习题365