《Unity实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)约瑟夫·霍金(Joseph Hocking)著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2019
  • ISBN:9787302518952
  • 页数:328 页
图书介绍:本书讲授如何使用Unity游戏开发平台来编写和部署游戏,从头讲解Unity的工具集,呈现从应用编码者蜕变为游戏开发者所需的技能。引导读者使用强大的C#语言、Unity的可视化工作流工具和顶尖的渲染引擎来构建和部署移动、桌面和控制台游戏。每章都阐述特定的Unity特性和游戏开发策略。阅读完本书内容和完成书中练习后,你将掌握创建生动的基于2D和3D驱动的游戏应用的各方面技能。

第Ⅰ部分 起步 3

第1章 初识Unity 3

1.1为什么Unity如此优秀 4

1.1.1 Unity的优势 4

1.1.2要意识到的缺点 6

1.1.3使用Unity构建的游戏示例 7

1.2如何使用Unity 10

1.2.1 Scene视图、Game视图和工具栏 11

1.2.2使用鼠标和键盘 12

1.2.3 Hierarchy视图和Inspector面板 13

1.2.4 Project和Console标签 13

1.3开始使用Unit编程 14

1.3.1代码在Unit中运行:脚本组件 15

1.3.2使用MonoDevelop,跨平台的IDE 16

1.3.3打印到控制台:Hello World! 18

1.4小结 20

第2章 构建一个令人置身3D空间的演示游戏 21

2.1在开始之前 22

2.1.1对项目做计划 22

2.1.2了解3D坐标空间 23

2.2开始项目:在场景中放置对象 25

2.2.1布景:地板、外墙和内墙 25

2.2.2灯光和摄像机 27

2.2.3玩家的碰撞器和视口 28

2.3移动对象:应用变换的脚本 29

2.3.1图示说明如何通过编程实现移动 30

2.3.2编写代码实现图中演示的运动 30

2.3.3本地和全局坐标空间 32

2.4用于观察周围的组件脚本:MouseLook 33

2.4.1跟踪鼠标移动的水平旋转 34

2.4.2有限制的垂直旋转 35

2.4.3同时水平旋转和垂直旋转 36

2.5键盘输入组件:第一人称控件 38

2.5.1响应按下的键 39

2.5.2设置独立于计算机运行速度的移动速率 40

2.5.3移动CharacterController以检测碰撞 41

2.5.4将组件调整为走路而不是飞翔 42

2.6小结 44

第3章为3D游戏添加敌人和子弹 45

3.1通过射线射击 46

3.1.1什么是射线发射 46

3.1.2使用命令ScreenPointToRay射击 47

3.1.3为准心和击中点添加可视化指示器 49

3.2编写能响应的目标 52

3.2.1确定被击中的对象 52

3.2.2警告目标被击中 53

3.3基本漫游A1 54

3.3.1图解基础AI的工作原理 54

3.3.2使用射线发射发现障碍物 55

3.3.3跟踪角色的状态 56

3.4生成敌人预设 58

3.4.1什么是预设 58

3.4.2创建敌人预设 58

3.4.3在不可见的SceneController中实例化 59

3.5通过实例化对象进行射击 62

3.5.1创建子弹预设 62

3.5.2发射子弹并和目标碰撞 63

3.5.3伤害玩家 65

3.6小结 66

第4章 为游戏开发图形 67

4.1了解美术资源 67

4.2构建基础3D场景:白盒 70

4.2.1白盒的解释 70

4.2.2为关卡绘制地板平面图 71

4.2.3根据平面图布局几何体 71

4.3使用2D图像给场景贴图 73

4.3.1选择文件格式 73

4.3.2导入图像文件 74

4.3.3应用图像 76

4.4使用贴图图像产生天空视觉效果 77

4.4.1什么是天空盒 77

4.4.2创建一个新天空盒材质 78

4.5使用自定义3D模型 80

4.5.1选择文件格式 81

4.5.2导出和导入模型 81

4.6使用粒子系统创建效果 84

4.6.1调整默认效果的参数 85

4.6.2为火焰应用新贴图 86

4.6.3将粒子效果附加到3D对象上 87

4.7小结 88

第Ⅱ部分 轻松工作 91

第5章 使用Unity的2D功能构建一款记忆力游戏 91

5.1设置2D图形 92

5.1.1为项目做准备 92

5.1.2显示2D图像(亦称精灵) 94

5.1.3将摄像机切换为2D模式 96

5.2构建卡片对象并使它响应单击 97

5.2.1从精灵中构建对象 97

5.2.2鼠标输入代码 98

5.2.3当单击时显示卡片正面 99

5.3显示不同的卡片图像 99

5.3.1通过编程加载图像 99

5.3.2通过不可见的SceneController设置图像 100

5.3.3实例化一叠卡片 102

5.3.4打乱卡片 104

5.4实现匹配和匹配得分 105

5.4.1保存并比较翻开的卡片 106

5.4.2隐藏不匹配的卡片 106

5.4.3显示分数的文本 107

5.5重启按钮 109

5.5.1使用SendMessage编写UIButton组件 109

5.5.2从SceneController中调用LoadScene 111

5.6小结 112

第6章 创建基本的2D平台游戏 113

6.1设置图形 114

6.1.1放置墙壁和地板 114

6.1.2导入精灵表 115

6.2左右移动玩家 116

6.2.1编写键盘控制 117

6.2.2与墙壁碰撞 117

6.3播放精灵动画 118

6.3.1讲解Mecanim动画系统 118

6.3.2在代码中触发动画的播放 120

6.4添加跳跃功能 121

6.4.1因重力而下落 121

6.4.2施加向上的跃动 122

6.4.3检测地面 123

6.5平台游戏的附加功能 123

6.5.1不同寻常的楼层:斜坡和单向平台 124

6.5.2实现移动的平台 125

6.5.3摄像机控制 128

6.6小结 129

第7章 在游戏中放置GUI 131

7.1在开始写代码之前 133

7.1.1立即模式GUI还是高级2D界面 133

7.1.2规划布局 134

7.1.3导入UI图像 134

7.2设置GUI显示 135

7.2.1为界面创建画布 135

7.2.2按钮、图像和文本标签 136

7.2.3控制UI元素的位置 139

7.3编写UI中的交互 140

7.3.1编写不可见的UIController 141

7.3.2创建弹出窗口 143

7.3.3使用滑动条和输入域设置值 145

7.4通过响应事件更新游戏 147

7.4.1集成事件系统 148

7.4.2从场景中广播和侦听事件 148

7.4.3从HUD广播和侦听事件 150

7.5小结 151

第8章 创建第三人称3D游戏:玩家移动和动画 153

8.1将摄像机视图调整为第三人称视角 155

8.1.1导入一个用于观察的角色 155

8.1.2将阴影添加到场景 156

8.1.3摄像机环绕玩家角色 158

8.2编写程序控制摄像机的相对移动 160

8.2.1旋转角色,以朝向移动方向 160

8.2.2朝某方向移动 162

8.3实现跳跃动作 164

8.3.1应用垂直速度和加速度 164

8.3.2修改地面检测来处理边缘和斜坡 166

8.4设置玩家角色上的动画 169

8.4.1在导入的模型上定义动画剪辑 171

8.4.2为动画创建动画控制器 172

8.4.3编写操作Animator组件的代码 175

8.5小结 176

第9章 在游戏中添加交互设施和物件 177

9.1创建门和其他设施 178

9.1.1用按键控制开关的门 178

9.1.2用开门之前检查距离和朝向 179

9.1.3创建一个变色监控器 181

9.2通过碰撞与对象交互 182

9.2.1和具有物理功能的障碍物碰撞 182

9.2.2用触发器对象操作门 183

9.2.3收集当前关卡散落的物件 186

9.3管理仓库数据和游戏状态 187

9.3.1设置玩家和仓库管理器 188

9.3.2编程实现游戏管理器 189

9.3.3把物品存储在集合对象中:List与Dictionary 193

9.4使用和装备物品的仓库UI 195

9.4.1在UI中显示仓库物品 195

9.4.2装备一个用来开门的钥匙 198

9.4.3通过使用血量包来恢复玩家的血量 199

9.5小结 201

第Ⅲ部分 冲刺阶段 205

第10章 将游戏连接到互联网 205

10.1创建户外场景 207

10.1.1使用天空盒生成天空视觉效果 207

10.1.2通过代码设置大气环境 208

10.2从互联网服务下载天气数据 210

10.2.1使用协程请求HTTP数据 213

10.2.2解析XML 217

10.2.3解析JSON 218

10.2.4基于天气数据影响场景 220

10.3添加一个网络布告栏 221

10.3.1从互联网加载图像 222

10.3.2在布告栏上显示图像 224

10.3.3缓存下载的图像以供重用 225

10.4将数据发送到Web服务器 227

10.4.1跟踪当前的天气:发送post请求 227

10.4.2 PHP中的服务器端代码 229

10.5小结 230

第11章 播放音频:音效和音乐 231

11.1导入音效 232

11.1.1支持的文件格式 232

11.1.2导入音频文件 234

11.2播放音效 235

11.2.1音频剪辑、音源和声音侦听器 235

11.2.2设定循环播放的声音 236

11.2.3用代码触发音效 237

11.3音频控制接口 238

11.3.1建立中心AudioManager 239

11.3.2音量控制UI 241

11.3.3播放UI声音 244

11.4背景音乐 245

11.4.1播放循环音乐 245

11.4.2独立控制音乐的音量 248

11.4.3歌曲间的淡入淡出 250

11.5小结 253

第12章 将各部分整合为一个完整的游戏 255

12.1再次利用项目构建动作RPG演示游戏 256

12.1.1将多个项目的资源和代码装配在一起 257

12.1.2编写指向-单击控件:移动和设备 259

12.1.3使用新界面替换旧GUI 264

12.2开发总体的游戏结构 270

12.2.1控制任务流和多个关卡 270

12.2.2到达出口,完成一个关卡 274

12.2.3被敌人捉到时关卡失败 276

12.3处理玩家在游戏过程中的进度 278

12.3.1保存并加载玩家进度 278

12.3.2完成三个关卡,游戏通关 282

12.4小结 284

第13章 将游戏部署到玩家的设备 285

13.1构建用于桌面的应用包:Windows.Mac和Linux 287

13.1.1构建应用 288

13.1.2调整Player Settings:设置游戏的名称和图标 289

13.1.3平台依赖的编译 290

13.2为Web构建游戏 292

13.2.1 Unity Player和HTML5/WebGL 292

13.2.2构建嵌入网页的游戏 292

13.2.3与浏览器中的JavaScript通信 292

13.3构建移动应用的平台:iOS和Android 296

13.3.1设置构建工具 296

13.3.2贴图压缩 300

13.3.3开发插件 301

13.4小结 308

附录A 场景导航和快捷键 309

A.1使用鼠标进行场景导航 309

A.2有用的快捷键 310

附录B与Unity一同使用的外部工具 311

B.1编程工具 311

B.1.1 Viisual Studio 311

B.1.2 Xcode 311

B.1.3 Android SDK 312

B.1.4 SVN、 Git或Mercurial 312

B.2 3D美术应用 312

B.2.1 MayA 312

B.2.2 3ds Max 312

B.2.3 Blender 313

B.2.4 SketchUp 313

B.3 2D图像编辑器 313

B.3.1 Photoshop 313

B.3.2 GIMP 313

B.3.3 TexturePacker 313

B.3.4 Aseprite, Pyxel Edit 314

B.4音频软件 314

B.4.1 Pro Tools&s 314

B.4.2 Audacity 314

附录C在Blender中建模一个板凳 315

C.1构建网格几何体 316

C.2模型的贴图映射 319

附录D在线学习资源 323

D.1其他指南 323

D.2代码库 324

后序 327