书籍详情
Unity 2D与3D手机游戏开发实战
作者:吴雁涛 叶东海 赵杰
出版社:清华大学出版社
出版时间:2022-08-01
ISBN:9787302612612
定价:¥89.00
购买这本书可以去
内容简介
本书基于Unity 2020,详细讲解Unity的主要功能和用法,以及游戏开发的方法和技巧,并剖析了3个实战项目:一个简单的2D打砖块游戏、一个3D动作RPG游戏和一个3D对战射击游戏。通过以上内容,帮助读者掌握Unity制作游戏的方法,以快速进入Unity 2D与3D游戏开发之门。本书分为13章,内容包括Unity 2020的安装和基本界面,理解Unity的世界生成,脚本基础,界面及输入,2D游戏开发,制作2D打砖块游戏,3D物理、动画和导航,Unity 3D开发的简单框架及常用技巧,3D动作游戏示例,更复杂的3D动作游戏,Unity其他功能,简单的3D射击游戏实战,商城资源等。本书适合Unity 3D游戏开发初学者、游戏与数字孪生开发人员阅读,也适合作为高等院校、中职学校和培训机构计算机游戏开发相关专业师生的教学参考书。
作者简介
吴雁涛,10多年计算机软件开发经验,包括Web应用开发、Unity应用开发等。著有《Unity 2D与3D手机游戏开发实战》《Unity 3D平台AR与VR开发快速上手》《Unity 3D平台AR快速开发上手——基于EasyAR 4.0》《Unity 2020游戏开发快速上手》。
目录
第 1 章 Unity的安装和基本界面1
1.1 Unity的安装1
1.1.1 Unity ID1
1.1.2 Unity Hub的安装和使用2
1.1.3 基础设置4
1.1.4 提示和总结5
1.2 Unity的基本界面5
1.2.1 共有操作6
1.2.2 项目窗口6
1.2.3 层级窗口7
1.2.4 场景视图8
1.2.5 检查器窗口9
1.2.6 游戏视图10
1.2.7 控制台窗口11
1.2.8 资源商城12
1.2.9 包管理器12
1.2.10 其他常用操作12
1.2.11 提示和总结12
第2章 理解Unity的世界并生成第一个应用13
2.1 理解Unity的世界13
2.1.1 虚拟的三维世界13
2.1.2 游戏对象和Transform13
2.1.3 游戏对象的层级结构14
2.1.4 组件决定游戏对象14
2.1.5 场景和摄像机14
2.1.6 资源14
2.2 Unity的项目结构15
2.3 Unity的坐标16
2.4 Unity项目目录说明17
2.4.1 项目目录17
2.4.2 Assets下的特殊目录17
2.5 生成第一个应用18
2.5.1 生成设置和玩家设置18
2.5.2 生成第一个应用18
2.6 提示和总结19
第3章 Unity脚本基础内容20
3.1 C#基础20
3.2 Unity 3D的内置数据类型21
3.3 MonoBehaviour类22
3.3.1 脚本组件22
3.3.2 特殊赋值方式22
3.3.3 Unity基础事件23
3.4 Debug类24
3.5 游戏对象的基本操作24
3.5.1 获取指定游戏对象24
3.5.2 其他操作26
3.6 游戏对象位置的旋转和缩放27
3.7 Time和移动、旋转、缩放28
3.7.1 Time的3个常用属性28
3.7.2 移动29
3.7.3 旋转30
3.7.4 缩放30
3.8 组件获取和基本操作31
3.8.1 获取指定组件31
3.8.2 组件的基本操作32
3.9 应用退出和场景控制33
3.9.1 应用退出33
3.9.2 场景加载33
3.9.3 DontDestroyOnLoad和单实例34
3.10 协程和重复34
3.11 ScriptableObject36
3.12 其他37
3.13 提示和总结42
第4章 Unity的UI和输入43
4.1 常用资源导入后的设置43
4.2 预制件45
4.3 摄像机46
4.4 Unity UI48
4.4.1 RectTransform 48
4.4.2 RectTransform的程序控制49
4.4.3 画布53
4.4.4 文本和图像54
4.4.5 交互游戏对象56
4.4.6 事件响应57
4.5 输入62
4.5.1 键盘按键输入62
4.5.2 鼠标输入62
4.5.3 触屏输入63
4.5.4 输入管理器64
4.5.5 单击物体64
4.5.6 UI击穿65
4.6 音频播放66
第5章 Unity的2D开发68
5.1 2D开发基础设置68
5.2 图像资源和精灵编辑器工具69
5.3 2D基础组件和显示顺序70
5.4 2D物理71
5.4.1 2D刚体71
5.4.2 2D碰撞器组件 72
5.4.3 2D关节组件和2D物理材质73
5.4.4 2D效果器组件74
5.5 2D动画74
5.6 瓦片地图75
第6章 制作2D打砖块游戏77
6.1 游戏思路和结构77
6.2 导入和基础设置79
6.3 制作瓦片地图80
6.4 滑块和小球81
6.5 添加界面83
6.6 编写主要逻辑84
6.7 调试和完善85
第7章 3D物理、动画和导航87
7.1 物理系统87
7.1.1 刚体组件87
7.1.2 碰撞器组件88
7.1.3 关节和物理材质90
7.2 动画91
7.2.1 动画剪辑92
7.2.2 使用Animation窗口制作动画剪辑93
7.2.3 动画控制器94
7.2.4 动画器组件和动画的程序控制96
7.3 导航寻路97
7.4 拖尾和线100
7.4.1 拖尾100
7.4.2 线100
7.4.3 其他共同设置101
第8章 Unity开发简单框架及常用技巧104
8.1 多个Manager的简单框架104
8.1.1 演化过程104
8.1.2 多个Manager框架的说明105
8.2 ScriptableObject的使用106
8.3 AI的简单实现107
第9章 动作游戏示例109
9.1 项目结构109
9.2 基本设置110
9.3 指针切换112
9.3.1 场景设置113
9.3.2 编写并设置脚本113
9.4 单击移动玩家114
9.4.1 导航区域烘焙114
9.4.2 玩家游戏对象设置114
9.4.3 鼠标控制器脚本修改115
9.4.4 玩家控制器脚本编辑116
9.4.5 运行测试116
9.5 玩家动画制作和移动匹配117
9.5.1 新建默认动作控制器118
9.5.2 添加移动用的混合树118
9.5.3 添加攻击和死亡状态119
9.5.4 添加玩家动作控制器120
9.5.5 修改玩家控制器脚本120
9.6 玩家攻击敌人120
9.7 摄像机镜头设置122
9.8 怪物攻击123
9.8.1 骷髅动画控制器制作123
9.8.2 骷髅预制件制作123
9.8.3 编写基本的有限状态机124
9.8.4 编写死亡和站桩状态125
9.8.5 编写巡逻状态125
9.8.6 编写追击状态126
第10章 更复杂的3D动作游戏127
10.1 角色状态127
10.2 伤害计算129
10.2.1 修改脚本添加伤害计算130
10.2.2 添加动作事件131
10.2.3 运行测试133
10.3 等级提升133
10.4 敌人血量显示135
10.4.1 添加血条预制件135
10.4.2 脚本修改136
10.4.3 设置敌人137
10.5 玩家血量经验值显示137
10.5.1 设置玩家血量界面138
10.5.2 添加并编辑玩家控制器脚本139
10.5.3 修改玩家控制器脚本140
10.5.4 添加并编辑玩家信息显示脚本140
10.6 当前场景传送140
10.6.1 添加传送目标点脚本141
10.6.2 添加传送起始点脚本141
10.6.3 传送点预制件设置142
10.6.4 添加并编写场景管理器脚本143
10.7 玩家数据的保存和读取143
10.8 不同场景传送144
10.8.1 添加主场景的传送点144
10.8.2 设置预制件144
10.8.3 另一个场景的设置145
10.8.4 可用场景设置146
10.8.5 脚本修改146
10.9 菜单场景147
第11章 Unity其他功能介绍149
11.1 新的输入工具Input System149
11.2 镜头利器Cinemachine150
11.3 提升显示效果的URP和HDRP150
11.4 更好的文本显示Text Mesh Pro152
11.5 实时动画利器Timeline153
11.6 动态载入资源的Addressables AssetBundle153
11.7 官方的可视化脚本Bolt154
第12章 简单的射击游戏155
12.1 新建项目并导入模型资源155
12.2 导入动作控制158
12.3 改造控制160
12.3.1 视角改造160
12.3.2 添加基本动作161
12.4 添加武器系统163
12.4.1 导入武器系统插件Easy Weapons163
12.4.2 设置模型和武器164
12.4.3 添加并设置击中效果166
12.5 添加NPC及其AI168
12.5.1 导入AI Behavior插件168
12.5.2 添加AI Behavior170
12.5.3 设置动画170
12.5.4 添加巡逻状态172
12.5.5 添加攻击状态173
12.5.6 添加受到攻击和死亡状态175
12.5.7 添加并修改程序实现攻击效果176
12.6 实现网络对战178
12.6.1 插件导入和基础设置178
12.6.2 创建房间功能181
12.6.3 开始游戏的倒计时185
12.6.4 生成对战玩家预制件185
12.6.5 添加生成玩家功能187
12.6.6 位置同步187
12.6.7 同步动作188
12.6.8 同步射击和装弹效果188
12.6.9 添加菜单和结束过渡189
第13章 商城资源介绍191
13.1 Unity官方资源191
13.1.1 人物移动和镜头控制资源191
13.1.2 常用粒子特效资源Unity Particle Pack192
13.1.3 不需要写代码的游戏开发套件 Game Kit193
13.1.4 官方其他资源193
13.2 常用资源196
13.2.1 常用的移动插件DOTween196
13.2.2 可视化状态机Playmaker196
13.2.3 可视化行为树Behavior Designer197
13.3 常用的子系统197
13.3.1 对话背包和任务系统197
13.3.2 战斗系统及其他198
13.3.3 类型游戏制作资源201
13.3.4 通用的游戏制作资源202
13.3.5 网络相关插件204
1.1 Unity的安装1
1.1.1 Unity ID1
1.1.2 Unity Hub的安装和使用2
1.1.3 基础设置4
1.1.4 提示和总结5
1.2 Unity的基本界面5
1.2.1 共有操作6
1.2.2 项目窗口6
1.2.3 层级窗口7
1.2.4 场景视图8
1.2.5 检查器窗口9
1.2.6 游戏视图10
1.2.7 控制台窗口11
1.2.8 资源商城12
1.2.9 包管理器12
1.2.10 其他常用操作12
1.2.11 提示和总结12
第2章 理解Unity的世界并生成第一个应用13
2.1 理解Unity的世界13
2.1.1 虚拟的三维世界13
2.1.2 游戏对象和Transform13
2.1.3 游戏对象的层级结构14
2.1.4 组件决定游戏对象14
2.1.5 场景和摄像机14
2.1.6 资源14
2.2 Unity的项目结构15
2.3 Unity的坐标16
2.4 Unity项目目录说明17
2.4.1 项目目录17
2.4.2 Assets下的特殊目录17
2.5 生成第一个应用18
2.5.1 生成设置和玩家设置18
2.5.2 生成第一个应用18
2.6 提示和总结19
第3章 Unity脚本基础内容20
3.1 C#基础20
3.2 Unity 3D的内置数据类型21
3.3 MonoBehaviour类22
3.3.1 脚本组件22
3.3.2 特殊赋值方式22
3.3.3 Unity基础事件23
3.4 Debug类24
3.5 游戏对象的基本操作24
3.5.1 获取指定游戏对象24
3.5.2 其他操作26
3.6 游戏对象位置的旋转和缩放27
3.7 Time和移动、旋转、缩放28
3.7.1 Time的3个常用属性28
3.7.2 移动29
3.7.3 旋转30
3.7.4 缩放30
3.8 组件获取和基本操作31
3.8.1 获取指定组件31
3.8.2 组件的基本操作32
3.9 应用退出和场景控制33
3.9.1 应用退出33
3.9.2 场景加载33
3.9.3 DontDestroyOnLoad和单实例34
3.10 协程和重复34
3.11 ScriptableObject36
3.12 其他37
3.13 提示和总结42
第4章 Unity的UI和输入43
4.1 常用资源导入后的设置43
4.2 预制件45
4.3 摄像机46
4.4 Unity UI48
4.4.1 RectTransform 48
4.4.2 RectTransform的程序控制49
4.4.3 画布53
4.4.4 文本和图像54
4.4.5 交互游戏对象56
4.4.6 事件响应57
4.5 输入62
4.5.1 键盘按键输入62
4.5.2 鼠标输入62
4.5.3 触屏输入63
4.5.4 输入管理器64
4.5.5 单击物体64
4.5.6 UI击穿65
4.6 音频播放66
第5章 Unity的2D开发68
5.1 2D开发基础设置68
5.2 图像资源和精灵编辑器工具69
5.3 2D基础组件和显示顺序70
5.4 2D物理71
5.4.1 2D刚体71
5.4.2 2D碰撞器组件 72
5.4.3 2D关节组件和2D物理材质73
5.4.4 2D效果器组件74
5.5 2D动画74
5.6 瓦片地图75
第6章 制作2D打砖块游戏77
6.1 游戏思路和结构77
6.2 导入和基础设置79
6.3 制作瓦片地图80
6.4 滑块和小球81
6.5 添加界面83
6.6 编写主要逻辑84
6.7 调试和完善85
第7章 3D物理、动画和导航87
7.1 物理系统87
7.1.1 刚体组件87
7.1.2 碰撞器组件88
7.1.3 关节和物理材质90
7.2 动画91
7.2.1 动画剪辑92
7.2.2 使用Animation窗口制作动画剪辑93
7.2.3 动画控制器94
7.2.4 动画器组件和动画的程序控制96
7.3 导航寻路97
7.4 拖尾和线100
7.4.1 拖尾100
7.4.2 线100
7.4.3 其他共同设置101
第8章 Unity开发简单框架及常用技巧104
8.1 多个Manager的简单框架104
8.1.1 演化过程104
8.1.2 多个Manager框架的说明105
8.2 ScriptableObject的使用106
8.3 AI的简单实现107
第9章 动作游戏示例109
9.1 项目结构109
9.2 基本设置110
9.3 指针切换112
9.3.1 场景设置113
9.3.2 编写并设置脚本113
9.4 单击移动玩家114
9.4.1 导航区域烘焙114
9.4.2 玩家游戏对象设置114
9.4.3 鼠标控制器脚本修改115
9.4.4 玩家控制器脚本编辑116
9.4.5 运行测试116
9.5 玩家动画制作和移动匹配117
9.5.1 新建默认动作控制器118
9.5.2 添加移动用的混合树118
9.5.3 添加攻击和死亡状态119
9.5.4 添加玩家动作控制器120
9.5.5 修改玩家控制器脚本120
9.6 玩家攻击敌人120
9.7 摄像机镜头设置122
9.8 怪物攻击123
9.8.1 骷髅动画控制器制作123
9.8.2 骷髅预制件制作123
9.8.3 编写基本的有限状态机124
9.8.4 编写死亡和站桩状态125
9.8.5 编写巡逻状态125
9.8.6 编写追击状态126
第10章 更复杂的3D动作游戏127
10.1 角色状态127
10.2 伤害计算129
10.2.1 修改脚本添加伤害计算130
10.2.2 添加动作事件131
10.2.3 运行测试133
10.3 等级提升133
10.4 敌人血量显示135
10.4.1 添加血条预制件135
10.4.2 脚本修改136
10.4.3 设置敌人137
10.5 玩家血量经验值显示137
10.5.1 设置玩家血量界面138
10.5.2 添加并编辑玩家控制器脚本139
10.5.3 修改玩家控制器脚本140
10.5.4 添加并编辑玩家信息显示脚本140
10.6 当前场景传送140
10.6.1 添加传送目标点脚本141
10.6.2 添加传送起始点脚本141
10.6.3 传送点预制件设置142
10.6.4 添加并编写场景管理器脚本143
10.7 玩家数据的保存和读取143
10.8 不同场景传送144
10.8.1 添加主场景的传送点144
10.8.2 设置预制件144
10.8.3 另一个场景的设置145
10.8.4 可用场景设置146
10.8.5 脚本修改146
10.9 菜单场景147
第11章 Unity其他功能介绍149
11.1 新的输入工具Input System149
11.2 镜头利器Cinemachine150
11.3 提升显示效果的URP和HDRP150
11.4 更好的文本显示Text Mesh Pro152
11.5 实时动画利器Timeline153
11.6 动态载入资源的Addressables AssetBundle153
11.7 官方的可视化脚本Bolt154
第12章 简单的射击游戏155
12.1 新建项目并导入模型资源155
12.2 导入动作控制158
12.3 改造控制160
12.3.1 视角改造160
12.3.2 添加基本动作161
12.4 添加武器系统163
12.4.1 导入武器系统插件Easy Weapons163
12.4.2 设置模型和武器164
12.4.3 添加并设置击中效果166
12.5 添加NPC及其AI168
12.5.1 导入AI Behavior插件168
12.5.2 添加AI Behavior170
12.5.3 设置动画170
12.5.4 添加巡逻状态172
12.5.5 添加攻击状态173
12.5.6 添加受到攻击和死亡状态175
12.5.7 添加并修改程序实现攻击效果176
12.6 实现网络对战178
12.6.1 插件导入和基础设置178
12.6.2 创建房间功能181
12.6.3 开始游戏的倒计时185
12.6.4 生成对战玩家预制件185
12.6.5 添加生成玩家功能187
12.6.6 位置同步187
12.6.7 同步动作188
12.6.8 同步射击和装弹效果188
12.6.9 添加菜单和结束过渡189
第13章 商城资源介绍191
13.1 Unity官方资源191
13.1.1 人物移动和镜头控制资源191
13.1.2 常用粒子特效资源Unity Particle Pack192
13.1.3 不需要写代码的游戏开发套件 Game Kit193
13.1.4 官方其他资源193
13.2 常用资源196
13.2.1 常用的移动插件DOTween196
13.2.2 可视化状态机Playmaker196
13.2.3 可视化行为树Behavior Designer197
13.3 常用的子系统197
13.3.1 对话背包和任务系统197
13.3.2 战斗系统及其他198
13.3.3 类型游戏制作资源201
13.3.4 通用的游戏制作资源202
13.3.5 网络相关插件204
猜您喜欢