书籍详情
Unity 2020游戏开发快速上手
作者:吴雁涛,叶东海,赵杰 著
出版社:清华大学出版社
出版时间:2021-11-01
ISBN:9787302593768
定价:¥99.00
购买这本书可以去
内容简介
本书详细讲解Unity 2020的用法,并逐一说明Unity的主要功能,让读者对Unity游戏开发有一个整体认识,同时通过讲解一个简单的狗狗打怪游戏场景的相关实现技术,使读者掌握Unity制作游戏产品的方法,以快速进入Unity游戏开发之门。 本书共分16章,内容包括Unity 2020的安装、理解Unity的世界、Unity的常用界面、Unity项目从新建到生成、Unity脚本基础、Unity常用基础功能、Unity开发简单框架及常用技巧、狗狗打怪游戏结构和设置、指针切换及玩家移动攻击、敌人攻击、角色状态和伤害计算、场景传送和数据存取、狗狗打怪菜单场景。 本书适合Unity游戏开发初学者阅读,也适合作为高等院校、中职学校和培训机构计算机游戏开发相关专业师生的教学参考书。
作者简介
吴雁涛,2000年毕业于西北工业大学,从事计算机软件开发相关工作,包括Web前端、Web后端、Untiy 3D开发等。著有《Unity 3D平台AR与VR开发快速上手》《Unity 2018 AR与VR开发快速上手》《Unity 3D平台AR快速开发上手—基于EasyAR 4.0》。 叶东海,2012年毕业于云南大学,从事网络安全和信息化建设与管理工作,研究数据挖掘和AR应用开发,有7年的教学工作经验,指导多项人工智能竞赛和创新创业项目。著有《数据库系统应用》《Unity 3D平台AR快速开发上手—基于EasyAR 4.0》。 赵杰,2003年毕业于云南大学软件工程专业,硕士,曾负责软件工程专业、网络工程专业和数字媒体专业本科生创新创业指导工作。有15年的教学工作经验,指导过多项大学生创新创业项目。著有《Unity 3D平台AR快速开发上手——基于EasyAR 4.0》。
目录
第1章 使用Unity Hub安装Unity 1
1.1 Unity Hub的下载 1
1.2 Unity Hub的安装 2
1.3 Unity Hub的使用 3
1.3.1 安装Unity 2020 3
1.3.2 添加模块和卸载Unity 6
1.3.3 激活许可证 6
1.3.4 Unity项目操作 7
1.4 脚本编辑器和界面语言设置 10
1.5 提示和总结 11
第2章 生成应用程序 12
2.1 安装对应平台的模块 12
2.2 窗口设置 13
2.3 玩家设置 15
2.4 生成Windows程序 17
2.5 生成网页应用 18
2.6 生成安卓应用 19
2.6.1 JDK和Android SDK 19
2.6.2 玩家设置 20
2.6.3 生成安卓应用 21
2.7 生成iOS应用 22
2.7.1 玩家设置 22
2.7.2 生成iOS应用 23
2.8 提示和总结 24
第3章 理解Unity的世界 25
3.1 虚拟的三维世界 25
3.1.1 游戏对象和Transform 26
3.1.2 游戏对象的层级结构 26
3.1.3 组件决定游戏对象 27
3.1.4 场景和摄像机 27
3.1.5 资源 27
3.2 Unity项目的结构 27
3.3 Unity的坐标 28
3.4 Unity项目目录说明 30
3.5 关于翻译 31
3.6 关于Unity的学习资源 32
3.7 提示和总结 33
第4章 Unity的常用界面 34
4.1 共有操作 35
4.2 项目窗口 36
4.2.1 菜单 36
4.2.2 基本操作 37
4.2.3 界面调整 37
4.2.4 搜索 37
4.3 层级窗口 39
4.3.1 菜单 39
4.3.2 基本操作 40
4.3.3 联动内容 41
4.4 场景视图 43
4.4.1 添加操作 44
4.4.2 视角操作(视图导航) 45
4.4.3 游戏对象操作 46
4.4.4 其他辅助按钮和开关 49
4.5 检查器窗口 50
4.5.1 菜单 50
4.5.2 游戏对象操作 52
4.5.3 组件操作 53
4.5.4 资源的标签 54
4.5.5 其他功能 54
4.6 游戏视图 55
4.6.1 常用内容 55
4.6.2 其他按钮 56
4.7 控制台窗口 57
4.7.1 基本操作 57
4.7.2 工具栏 57
4.8 资源商城 58
4.9 包管理器 60
4.10 菜单及其他常用操作 61
4.11 提示和总结 62
第5章 从新建到生成 63
5.1 新建到生成过程描述 64
5.1.1 新建项目 64
5.1.2 资源和插件的导入及设置 64
5.1.3 场景搭建 64
5.1.4 特效、动画的制作 65
5.1.5 程序逻辑开发 65
5.1.6 调试和生成 65
5.2 简单的例子 65
5.2.1 新建项目 65
5.2.2 目录设置,添加和导入资源 66
5.2.3 场景搭建 68
5.2.4 效果添加设置 75
5.2.5 添加UI并设置逻辑 77
5.2.6 生成应用 80
5.3 提示和总结 81
第6章 Unity脚本的基础内容(上) 82
6.1 C#基础概述 82
6.2 Unity 3D的内置数据类型 83
6.3 MonoBehaviour 84
6.3.1 脚本组件 84
6.3.2 特殊赋值方式 84
6.3.3 Unity基础事件 86
6.4 Debug类 89
6.5 游戏对象的基本操作 90
6.5.1 获取指定游戏对象 90
6.5.2 其他操作 95
6.6 游戏对象位置的旋转和缩放 98
6.6.1 获取并设置坐标 99
6.6.2 获取并设置旋转 99
6.6.3 获取并设置缩放 100
6.7 Time 101
6.7.1 Time的3个常用属性 101
6.7.2 移动 101
6.7.3 旋转 103
6.7.4 缩放 104
6.8 组件获取和基本操作 105
6.8.1 获取指定组件 105
6.8.2 组件的基本操作 107
6.9 提示和练习 108
第7章 Unity脚本的基础内容(下) 110
7.1 应用退出和场景控制 110
7.1.1 应用退出 110
7.1.2 场景加载 110
7.1.3 DontDestroyOnLoad和单实例 112
7.2 协程和重复 113
7.2.1 协程 113
7.2.2 延时调用 115
7.2.3 重复调用 115
7.3 实例化 116
7.3.1 基本用法 116
7.3.2 传入类型 117
7.3.3 其他 117
7.4 PlayerPrefs保存获取数据 117
7.5 ScriptableObject 118
7.5.1 新建 119
7.5.2 使用 120
7.5.3 其他 121
7.6 调用其他组件上的方法 123
7.6.1 SendMessage 123
7.6.2 获取组件调用 125
7.7 Unity中与计算有关的内容 126
7.7.1 随机数 126
7.7.2 Mathf类 126
7.7.3 向量计算 127
7.8 其他 127
7.8.1 获取目录 127
7.8.2 平台判断 127
7.8.3 JsonUtility 128
7.8.4 注解 128
7.8.5 Gizmos 129
7.9 脚本常见错误 130
7.10 提示总结和练习 132
第8章 Unity常用基础功能(上) 135
8.1 常用资源导入后的设置 136
8.1.1 图片资源设置 137
8.1.2 模型资源设置 137
8.1.3 音频资源设置 138
8.1.4 视频资源设置 139
8.2 预制件 139
8.2.1 生成预制件 140
8.2.2 预制件的编辑 140
8.2.3 拆解预制件和生成预制件变体 142
8.2.4 预制件的编程 142
8.3 摄像机 143
8.3.1 投影 144
8.3.2 剪裁平面与清除标识 145
8.3.3 剔除遮罩 145
8.3.4 深度和视口矩形 146
8.3.5 其他 147
8.4 Unity UI 149
8.4.1 RectTransform 150
8.4.2 RectTransform的程序控制 153
8.4.3 画布 158
8.4.4 文本和图像 163
8.4.5 交互游戏对象 174
8.4.6 自动布局相关组件 183
8.4.7 事件响应 194
8.5 音频播放 205
8.5.1 音频剪辑 205
8.5.2 音频源 206
8.5.3 音频监听器 206
8.5.4 音频播放的程序控制 207
8.6 视频播放 208
8.6.1 视频剪辑 209
8.6.2 视频播放器 209
8.6.3 播放视频的几种方法 210
8.6.4 视频播放的程序控制 217
8.7 提示总结和小练习 219
第9章 Unity常用基础功能(下) 221
9.1 输入 221
9.1.1 键盘按键输入 221
9.1.2 鼠标输入 222
9.1.3 触屏输入 224
9.1.4 输入管理器 225
9.1.5 单击物体 230
9.1.6 UI击穿 237
9.2 物理系统 239
9.2.1 刚体组件 239
9.2.2 碰撞器组件 245
9.2.3 关节和物理材质 249
9.2.4 其他 252
9.3 动画 254
9.3.1 动画剪辑 255
9.3.2 使用动画窗口制作动画剪辑 261
9.3.3 动画剪辑中的事件 269
9.3.4 动画器控制器 271
9.3.5 动画组件和动画的程序控制 287
9.4 导航寻路 288
9.4.1 导航网格资源 289
9.4.2 导航网络代理组件 292
9.4.3 导航网络代理的程序控制 293
9.4.4 分离网格链接组件 294
9.4.5 导航网格障碍物组件 296
9.5 拖尾和线 297
9.5.1 拖尾 297
9.5.2 线 299
9.5.3 宽度设置 302
9.5.4 颜色设置 303
9.5.5 材质设置 304
9.5.6 其他共有属性 305
9.6 光照组件和粒子组件 306
9.6.1 光照组件 306
9.6.2 粒子系统组件 307
9.7 提示总结和小练习 309
第10章 Unity开发简单框架及常用技巧 310
10.1 多个Manager的简单框架 310
10.1.1 演化过程 310
10.1.2 多个Manager框架的说明 311
10.2 ScriptableObject的使用 312
10.3 AI的简单实现 313
第11章 狗狗打怪项目结构和设置 315
11.1 项目总体结构 315
11.2 项目基本设置 316
第12章 指针切换及玩家移动攻击 325
12.1 鼠标指针切换 325
12.1.1 场景设置 325
12.1.2 添加并设置MouseManager脚本 330
12.2 玩家单击移动 333
12.2.1 导航区域烘焙 334
12.2.2 玩家游戏对象设置 337
12.2.3 使用MouseManager修改脚本 340
12.2.4 使用PlayerController编辑脚本 341
12.2.5 运行测试 342
12.3 玩家动画制作和移动匹配 343
12.3.1 选取动作 343
12.3.2 添加动作控制器 345
12.3.3 添加移动用的混合树 345
12.3.4 添加攻击和死亡状态 346
12.3.5 修改PlayerController脚本 349
12.4 玩家攻击敌人 349
12.5 镜头设置 352
第13章 敌人攻击 355
13.1 动画动作准备 355
13.2 敌人预制件制作 357
13.3 EnemyController脚本编辑 360
13.3.1 基本的有限状态机 360
13.3.2 死亡和站桩状态 362
13.3.3 巡逻状态 363
13.3.4 追击状态 365
第14章 角色状态和伤害计算 368
14.1 角色状态 368
14.2 伤害计算 373
14.2.1 修改脚本添加伤害计算 374
14.2.2 添加动作事件 376
14.2.3 运行测试 377
14.3 等级升级 378
14.4 敌人血量显示 382
14.4.1 添加血条预制件 383
14.4.2 脚本修改 385
14.4.3 设置敌人 387
14.5 玩家血量经验值显示 389
14.5.1 设置玩家血量界面 390
14.5.2 添加、编辑GameManager脚本 393
14.5.3 修改PlayerController脚本 394
14.5.4 添加、编辑PlayerHealthUI脚本 395
第15章 场景传送和数据存取 397
15.1 当前场景传送 397
15.1.1 添加传送目标点脚本 398
15.1.2 添加传送起始点脚本 398
15.1.3 传送点预制件设置 399
15.1.4 添加、编写SceneManager脚本 401
15.2 玩家数据的保存和读取 404
15.3 不同场景传送 407
15.3.1 添加主场景的传送点 407
15.3.2 设置预制件 407
15.3.3 另一个场景的设置 408
15.3.4 可用场景设置 411
15.3.5 脚本修改 411
第16章 狗狗打怪菜单场景 414
1.1 Unity Hub的下载 1
1.2 Unity Hub的安装 2
1.3 Unity Hub的使用 3
1.3.1 安装Unity 2020 3
1.3.2 添加模块和卸载Unity 6
1.3.3 激活许可证 6
1.3.4 Unity项目操作 7
1.4 脚本编辑器和界面语言设置 10
1.5 提示和总结 11
第2章 生成应用程序 12
2.1 安装对应平台的模块 12
2.2 窗口设置 13
2.3 玩家设置 15
2.4 生成Windows程序 17
2.5 生成网页应用 18
2.6 生成安卓应用 19
2.6.1 JDK和Android SDK 19
2.6.2 玩家设置 20
2.6.3 生成安卓应用 21
2.7 生成iOS应用 22
2.7.1 玩家设置 22
2.7.2 生成iOS应用 23
2.8 提示和总结 24
第3章 理解Unity的世界 25
3.1 虚拟的三维世界 25
3.1.1 游戏对象和Transform 26
3.1.2 游戏对象的层级结构 26
3.1.3 组件决定游戏对象 27
3.1.4 场景和摄像机 27
3.1.5 资源 27
3.2 Unity项目的结构 27
3.3 Unity的坐标 28
3.4 Unity项目目录说明 30
3.5 关于翻译 31
3.6 关于Unity的学习资源 32
3.7 提示和总结 33
第4章 Unity的常用界面 34
4.1 共有操作 35
4.2 项目窗口 36
4.2.1 菜单 36
4.2.2 基本操作 37
4.2.3 界面调整 37
4.2.4 搜索 37
4.3 层级窗口 39
4.3.1 菜单 39
4.3.2 基本操作 40
4.3.3 联动内容 41
4.4 场景视图 43
4.4.1 添加操作 44
4.4.2 视角操作(视图导航) 45
4.4.3 游戏对象操作 46
4.4.4 其他辅助按钮和开关 49
4.5 检查器窗口 50
4.5.1 菜单 50
4.5.2 游戏对象操作 52
4.5.3 组件操作 53
4.5.4 资源的标签 54
4.5.5 其他功能 54
4.6 游戏视图 55
4.6.1 常用内容 55
4.6.2 其他按钮 56
4.7 控制台窗口 57
4.7.1 基本操作 57
4.7.2 工具栏 57
4.8 资源商城 58
4.9 包管理器 60
4.10 菜单及其他常用操作 61
4.11 提示和总结 62
第5章 从新建到生成 63
5.1 新建到生成过程描述 64
5.1.1 新建项目 64
5.1.2 资源和插件的导入及设置 64
5.1.3 场景搭建 64
5.1.4 特效、动画的制作 65
5.1.5 程序逻辑开发 65
5.1.6 调试和生成 65
5.2 简单的例子 65
5.2.1 新建项目 65
5.2.2 目录设置,添加和导入资源 66
5.2.3 场景搭建 68
5.2.4 效果添加设置 75
5.2.5 添加UI并设置逻辑 77
5.2.6 生成应用 80
5.3 提示和总结 81
第6章 Unity脚本的基础内容(上) 82
6.1 C#基础概述 82
6.2 Unity 3D的内置数据类型 83
6.3 MonoBehaviour 84
6.3.1 脚本组件 84
6.3.2 特殊赋值方式 84
6.3.3 Unity基础事件 86
6.4 Debug类 89
6.5 游戏对象的基本操作 90
6.5.1 获取指定游戏对象 90
6.5.2 其他操作 95
6.6 游戏对象位置的旋转和缩放 98
6.6.1 获取并设置坐标 99
6.6.2 获取并设置旋转 99
6.6.3 获取并设置缩放 100
6.7 Time 101
6.7.1 Time的3个常用属性 101
6.7.2 移动 101
6.7.3 旋转 103
6.7.4 缩放 104
6.8 组件获取和基本操作 105
6.8.1 获取指定组件 105
6.8.2 组件的基本操作 107
6.9 提示和练习 108
第7章 Unity脚本的基础内容(下) 110
7.1 应用退出和场景控制 110
7.1.1 应用退出 110
7.1.2 场景加载 110
7.1.3 DontDestroyOnLoad和单实例 112
7.2 协程和重复 113
7.2.1 协程 113
7.2.2 延时调用 115
7.2.3 重复调用 115
7.3 实例化 116
7.3.1 基本用法 116
7.3.2 传入类型 117
7.3.3 其他 117
7.4 PlayerPrefs保存获取数据 117
7.5 ScriptableObject 118
7.5.1 新建 119
7.5.2 使用 120
7.5.3 其他 121
7.6 调用其他组件上的方法 123
7.6.1 SendMessage 123
7.6.2 获取组件调用 125
7.7 Unity中与计算有关的内容 126
7.7.1 随机数 126
7.7.2 Mathf类 126
7.7.3 向量计算 127
7.8 其他 127
7.8.1 获取目录 127
7.8.2 平台判断 127
7.8.3 JsonUtility 128
7.8.4 注解 128
7.8.5 Gizmos 129
7.9 脚本常见错误 130
7.10 提示总结和练习 132
第8章 Unity常用基础功能(上) 135
8.1 常用资源导入后的设置 136
8.1.1 图片资源设置 137
8.1.2 模型资源设置 137
8.1.3 音频资源设置 138
8.1.4 视频资源设置 139
8.2 预制件 139
8.2.1 生成预制件 140
8.2.2 预制件的编辑 140
8.2.3 拆解预制件和生成预制件变体 142
8.2.4 预制件的编程 142
8.3 摄像机 143
8.3.1 投影 144
8.3.2 剪裁平面与清除标识 145
8.3.3 剔除遮罩 145
8.3.4 深度和视口矩形 146
8.3.5 其他 147
8.4 Unity UI 149
8.4.1 RectTransform 150
8.4.2 RectTransform的程序控制 153
8.4.3 画布 158
8.4.4 文本和图像 163
8.4.5 交互游戏对象 174
8.4.6 自动布局相关组件 183
8.4.7 事件响应 194
8.5 音频播放 205
8.5.1 音频剪辑 205
8.5.2 音频源 206
8.5.3 音频监听器 206
8.5.4 音频播放的程序控制 207
8.6 视频播放 208
8.6.1 视频剪辑 209
8.6.2 视频播放器 209
8.6.3 播放视频的几种方法 210
8.6.4 视频播放的程序控制 217
8.7 提示总结和小练习 219
第9章 Unity常用基础功能(下) 221
9.1 输入 221
9.1.1 键盘按键输入 221
9.1.2 鼠标输入 222
9.1.3 触屏输入 224
9.1.4 输入管理器 225
9.1.5 单击物体 230
9.1.6 UI击穿 237
9.2 物理系统 239
9.2.1 刚体组件 239
9.2.2 碰撞器组件 245
9.2.3 关节和物理材质 249
9.2.4 其他 252
9.3 动画 254
9.3.1 动画剪辑 255
9.3.2 使用动画窗口制作动画剪辑 261
9.3.3 动画剪辑中的事件 269
9.3.4 动画器控制器 271
9.3.5 动画组件和动画的程序控制 287
9.4 导航寻路 288
9.4.1 导航网格资源 289
9.4.2 导航网络代理组件 292
9.4.3 导航网络代理的程序控制 293
9.4.4 分离网格链接组件 294
9.4.5 导航网格障碍物组件 296
9.5 拖尾和线 297
9.5.1 拖尾 297
9.5.2 线 299
9.5.3 宽度设置 302
9.5.4 颜色设置 303
9.5.5 材质设置 304
9.5.6 其他共有属性 305
9.6 光照组件和粒子组件 306
9.6.1 光照组件 306
9.6.2 粒子系统组件 307
9.7 提示总结和小练习 309
第10章 Unity开发简单框架及常用技巧 310
10.1 多个Manager的简单框架 310
10.1.1 演化过程 310
10.1.2 多个Manager框架的说明 311
10.2 ScriptableObject的使用 312
10.3 AI的简单实现 313
第11章 狗狗打怪项目结构和设置 315
11.1 项目总体结构 315
11.2 项目基本设置 316
第12章 指针切换及玩家移动攻击 325
12.1 鼠标指针切换 325
12.1.1 场景设置 325
12.1.2 添加并设置MouseManager脚本 330
12.2 玩家单击移动 333
12.2.1 导航区域烘焙 334
12.2.2 玩家游戏对象设置 337
12.2.3 使用MouseManager修改脚本 340
12.2.4 使用PlayerController编辑脚本 341
12.2.5 运行测试 342
12.3 玩家动画制作和移动匹配 343
12.3.1 选取动作 343
12.3.2 添加动作控制器 345
12.3.3 添加移动用的混合树 345
12.3.4 添加攻击和死亡状态 346
12.3.5 修改PlayerController脚本 349
12.4 玩家攻击敌人 349
12.5 镜头设置 352
第13章 敌人攻击 355
13.1 动画动作准备 355
13.2 敌人预制件制作 357
13.3 EnemyController脚本编辑 360
13.3.1 基本的有限状态机 360
13.3.2 死亡和站桩状态 362
13.3.3 巡逻状态 363
13.3.4 追击状态 365
第14章 角色状态和伤害计算 368
14.1 角色状态 368
14.2 伤害计算 373
14.2.1 修改脚本添加伤害计算 374
14.2.2 添加动作事件 376
14.2.3 运行测试 377
14.3 等级升级 378
14.4 敌人血量显示 382
14.4.1 添加血条预制件 383
14.4.2 脚本修改 385
14.4.3 设置敌人 387
14.5 玩家血量经验值显示 389
14.5.1 设置玩家血量界面 390
14.5.2 添加、编辑GameManager脚本 393
14.5.3 修改PlayerController脚本 394
14.5.4 添加、编辑PlayerHealthUI脚本 395
第15章 场景传送和数据存取 397
15.1 当前场景传送 397
15.1.1 添加传送目标点脚本 398
15.1.2 添加传送起始点脚本 398
15.1.3 传送点预制件设置 399
15.1.4 添加、编写SceneManager脚本 401
15.2 玩家数据的保存和读取 404
15.3 不同场景传送 407
15.3.1 添加主场景的传送点 407
15.3.2 设置预制件 407
15.3.3 另一个场景的设置 408
15.3.4 可用场景设置 411
15.3.5 脚本修改 411
第16章 狗狗打怪菜单场景 414
猜您喜欢