Unity 2017 从入门到精通

副标题:无

作   者:Unity公司

分类号:

ISBN:9787115535177

微信扫一扫,移动浏览光盘

简介


Unity是在游戏开发和虚拟现实开发方面应用得非常广泛的软件,其功能强大,用户体验很友好,全世界已经有近千万注册用户。本书共分为28章,主要介绍Unity 2017的安装和使用方法,以循序渐进的方式详细讲解Unity操作界面、Timeline、资源导入流程、场景创建、粒子系统、Mecanim动画系统、物理引擎、地形系统、脚本语言开发、Shader开发、脚本调试优化与内存管理、跨平台发布等内容。书中每章都安排了有针对性的项目实例,可以帮助读者轻松掌握软件的使用技巧。为了方便读者学习,本书还附赠相关的Unity工程源文件以帮助读者快速掌握Unity开发技术,并在*后一章详细介绍了Unity 2018版本的新特性。 本书面向广大Unity 初学者,以及有志于从事Unity开发工作的人员,同时也适合高等院校相关专业的学生和各类培训班的学员阅读参考。


目录


第 1章 Unity介绍

1.1 Unity简介 1

1.2 Unity的历史 2

1.3 Unity 2017中的重要特性 3

1.3.1 业界领先的多平台支持 3

1.3.2 VR/AR*开发工具 4

1.3.3 Cinemachine摄像机系统 4

1.3.4 Timeline可视化工具 4

1.3.5 数字内容创建工具的工作流程改进对FBX的支持 5

1.3.6 Post-processing栈改进 5

1.3.7 粒子系统改进 5

1.3.8 全景360°/180°视频 5

1.3.9 更新版的Crunch库 5

1.3.10 光照改进 5

1.3.11 通过VR设备状态事件获得信息 6

1.3.12 轻松发布Android应用到中国小米平台 6

1.4 Unity开发案例介绍 6

1.4.1 Unity手机游戏开发案例 6

1.4.2 Unity严肃游戏开发案例 7



第 2章 Unity安装与购买

2.1 Unity安装 10

2.1.1 实践操作01:在Windows操作系统下的安装 10

2.1.2 实践操作02:在macOS下的安装 12

2.2 购买许可证 14

实践操作03:在线购买Unity Plus加强版 15



第3章 Unity编辑器

3.1 实践操作04:工程的创建 16

3.2 界面布局 16

3.2.1 导航窗口 16

3.2.2 界面布局 17

3.2.3 界面定制 18

3.3 工具栏 18

3.3.1 Transform Tools(变换工具) 18

3.3.2 Transform Gizmo Tools(变换辅助工具) 21

3.3.3 Play(播放控制) 21

3.3.4 Layers(分层下拉列表) 21

3.3.5 Layout(布局下拉列表) 21

3.4 菜单栏 21

3.4.1 File(文件)菜单 21

3.4.2 Edit(编辑)菜单 22

3.4.3 Assets(资源)菜单 23

3.4.4 GameObject(游戏对象)菜单 24

3.4.5 Component(组件)菜单 25

3.4.6 Window(窗口)菜单 26

3.4.7 Help(帮助)菜单 27

3.5 常用工作视图 28

3.5.1 Project(项目)视图 28

3.5.2 Scene(场景)视图 30

3.5.3 Game(游戏)视图 31

3.5.4 Inspector(检视)视图 32

3.5.5 Hierarchy(层级)视图 33

3.5.6 Console(控制台)视图 34



第4章 游戏对象、组件和Prefabs

4.1 实践操作05:创建游戏对象和组件 35

4.2 常用游戏对象 37

4.2.1 实践操作06:内置的几何体和空对象 37

4.2.2 Camera相机 38

4.2.3 Light(灯光) 39

4.2.4 UGUI 40

4.3 常用组件 40

4.3.1 Transform组件 40

4.3.2 Mesh组件 40

4.3.3 Physics组件 40

4.3.4 Particle System组件 41

4.3.5 Audio组件 41

4.3.6 Scripts组件 41

4.4 Prefabs(预设体) 41

4.4.1 实践操作07:创建Prefabs 41

4.4.2 实例化Prefabs 43

4.4.3 实践操作08:修改Prefabs 43



第5章 创建基本的3D游戏场景

5.1 实践操作09:创建3D游戏场景 46

5.2 地形 47

5.2.1 实践操作10:编辑地形 47

5.2.2 实践操作11:添加树木和植被 51

5.2.3 实践操作12:添加水效果 53

5.2.4 地形设置参数详解 54

5.3 实践操作13:光源和阴影 56

5.4 角色控制 58

5.4.1 实践操作14:创建第 一人称控制器 58

5.4.2 实践操作15:创建第三人称控制器 59

5.5 静态景物 61

5.5.1 实践操作16:导入外部物体 61

5.5.2 实践操作17:创建物理阻挡 62

5.6 环境和音效 63

5.6.1 实践操作18:添加天空盒 63

5.6.2 实践操作19:添加雾效 64

5.6.3 实践操作20:添加音效 65



第6章 创建基本的2D游戏场景

6.1 实践操作21:创建2D游戏场景 67

6.2 实践操作22:创建工作层 68

6.3 导入图片资源 68

6.4 创建Tilemap 69

实践操作23:创建Tilemaps 70

6.5 创建静态场景 71

6.5.1 创建静态景物 71

实践操作24:创建背景层 71

实践操作25:创建前景层 74

6.5.2 层级排序 76

6.5.3 Outline Editor功能 76

6.5.4 2D的九宫格技术 77

6.6 实践操作26:创建灯光 79

6.7 实践操作27:2D角色控制 81

6.8 2D游戏场景案例 83



第7章 资源的导入与导出流程

7.1 资源导入 85

7.1.1 外部资源场景工具介绍 85

7.1.2 Unity导入外部资源的方法 86

7.1.3 实践操作28:3D模型、材质的导入 87

7.1.4 图片资源的导入 92

7.1.5 3D动画的导入 99

7.1.6 音频资源的导入 99

7.1.7 视频资源的导入 101

7.2 资源包(unitypackage)的使用 103

7.2.1 资源包的导入 104

7.2.2 实践操作29:资源包的导出 104

7.3 Asset Store的介绍和使用 105

7.3.1 Asset Store简介 105

7.3.2 实践操作30:Asset Store的使用 106



第8章 3D数学基础

8.1 3D坐标系 107

8.1.1 全局坐标系 107

8.1.2 局部坐标系 108

8.1.3 相机坐标系 109

8.1.4 屏幕坐标系 109

8.2 向量 109

8.2.1 向量的运算 109

8.2.2 Vector3类 110

实践操作31:计算两物体间的距离 111

实践操作32:缓动效果 112

8.3 矩阵 113

8.4 齐次坐标 113

8.5 四元数 114

实践操作33:通过四元数控制对象旋转 116

8.6 坐标转换原理 117

8.6.1 世界坐标与局部坐标的转换 117

实践操作34:改变全局和局部坐标 117

8.6.2 世界坐标与屏幕坐标的转换 119

实践操作35:设置世界坐标 119



第9章 Unity脚本语言

9.1 Unity脚本语言 122

9.2 创建并运行脚本 122

9.2.1 实践操作36:创建脚本 122

9.2.2 MonoDevelop编辑器 123

9.2.3 必然事件 124

实践操作37:使用必然事件 124

9.3 C#基本语法 126

9.3.1 变量和常量 126

9.3.2 运算符和表达式 126

9.3.3 语句和函数 128

实践操作38:使用语句 128

9.3.4 访问修饰符 131

9.3.5 数组、链表和字典 132

实践操作39:使用数组 132

实践操作40:使用链表 134

9.3.6 代码注释 138

9.3.7 C#脚本 139

9.4 访问游戏对象和组件 140

9.4.1 MonoBehaviour 类 140

9.4.2 访问游戏对象 140

9.4.3 访问组件 141

实践操作41:访问组件或游戏对象 143

9.5 常用脚本API 144

9.5.1 Transform类 144

实践操作42:使用Transform组件控制游戏对象 145

9.5.2 Time类 146

9.5.3 Random类 147

9.5.4 Mathf类 147

实践操作43:使用Mathf.SmoothDamp函数

 制作相机的缓冲跟踪效果 148

9.5.5 Coroutine协同程序 149

实践操作44:使用协同程序 150

9.6 脚本生命周期 151



第 10章 信息输入管理

10.1 Input Manager 153

10.2 鼠标输入 155

实践操作45:鼠标输入的操作 155

10.3 键盘输入 157

实践操作46:键盘输入的操作 158

10.4 游戏外设输入 159

实践操作47:游戏外设输入的操作 159

10.5 移动设备输入 160

实践操作48:移动设备输入的操作 161

10.6 自定义输入 164

第 11章 物理系统

11.1 概述 166

11.2 物理系统相关组件 166

11.2.1 刚体组件 167

11.2.2 角色控制器 168

11.2.3 碰撞体组件 169

11.2.4 物理材质 173

11.2.5 布料组件 174

11.2.6 关节组件 179

11.2.7 力场组件 185

11.3 可视化物理调试 185



第 12章 粒子系统

12.1 什么是粒子系统 188

12.2 在Unity中使用粒子系统 189

12.3 高级应用技巧 191

实践操作49:学习使用标准资源包里的粒子特效 191

实践操作50:控制爆炸粒子 191

实践操作51:控制粒子的大小 193

12.4 参数详解 196



第 13章 动画系统

13.1 概述 212

13.2 Unity动画相关组件 213

13.2.1 Animator和Animator Controller 213

13.2.2 Animation动画编辑器 221

13.3 外部动画资源的准备和导入 223

13.3.1 获取人形网格模型 223

13.3.2 导入动画 224

13.3.3 动画分解 224

13.3.4 循环播放动画片段 225

13.4 人形角色动画 226

13.4.1 创建Avatar 226

13.4.2 配置Avatar 226

13.4.3 设置Muscle参数 228

13.4.4 Avatar Mask 228

13.4.5 人形动画的重定向 229

实践操作52:将第三人称控制动画重定向到其他角色 229

13.4.6 逆向运动学功能 231

实践操作53:逆向运动学应用 231

13.5 动画混合 233

13.5.1 混合树 233

13.5.2 1D混合 234

13.5.3 2D混合 236

13.5.4 直接混合 238



第 14章 Timeline

14.1 Timeline概述 239

14.2 Timeline工作流程 242

14.2.1 创建Timeline资源和Timeline实例 242

14.2.2 用无限剪辑录制基本动画 243

14.2.3 将无限剪辑转换为动画片段 246

14.2.4 创建人形动画 246

14.3 Timeline编辑窗口 249

14.3.1 Timeline预览和Timeline选择器 251

14.3.2 Timeline播放控件 251

14.3.3 轨道列表 252

14.3.4 剪辑视图 257

14.3.5 曲线视图 264

14.3.6 Timeline设置 268

14.4 Playable Director组件 269

14.5 Cinemachine Camera 系统 270

14.5.1 下载并导入资源包 270

14.5.2 Cinemachine Camera主要的组件 271

实践操作54:使用Cinemachine Camera 271

14.6 综合案例:Timeline

 和Cinemachine Camera的综合使用 274



第 15章 UGUI

15.1 概述 280

15.2 UGUI之Canvas画布 280

15.2.1 Canvas 280

15.2.2 Canvas Group 281

15.2.3 元素绘制顺序 281

15.3 UGUI之EventSystem对象 282

15.3.1 Event System组件 282

15.3.2 Standalone Input Module组件 282

15.4 UGUI之基本布局 283

15.4.1 矩形工具 283

15.4.2 Rect Transform矩形变换 283

15.4.3 Anchors锚点 284

15.4.4 Pivot轴心点 285

15.4.5 补充 285

15.5 UGUI之Text文本 285

15.5.1 Text介绍 285

15.5.2 Rich Text富文本 286

15.6 UGUI之Image图像 286

15.7 UGUI之Raw Image原始图像 287

15.8 UGUI之Mask遮罩 288

15.9 UGUI之过渡选项和导航选项 288

15.9.1 Transition过渡选项 288

15.9.2 Navigation导航选项 289

15.10 UGUI之Button按钮 290

15.10.1 Button介绍 290

15.10.2 实践操作55:Button单击事件绑定 291

15.11 UGUI之Toggle开关 294

15.11.1 Toggle介绍 294

15.11.2 实践操作56:Toggle事件绑定 295

15.12 UGUI之Slider滑动条 295

15.12.1 Slider介绍 295

15.12.2 实践操作57:Slider事件绑定 296

15.13 UGUI之Scrollbar滚动条 297

15.13.1 Scrollbar介绍 297

15.13.2 Scrollbar事件绑定 298

15.14 UGUI之Dropdown下拉列表 298

15.14.1 Dropdown介绍 298

15.14.2 Dropdown事件绑定 300

15.14.3 实践操作58:Dropdown其他操作 300

15.15 UGUI之Input Field输入栏 301

15.15.1 Input Field介绍 301

15.15.2 Input Field事件绑定 302

15.16 UGUI之Scroll View滚动视图 302

15.16.1 Scroll View介绍 302

15.16.2 Scroll View事件绑定 303

15.17 UGUI之自动布局组件 303

15.17.1 Layout Element布局元素 303

15.17.2 Content Size Fitter内容尺寸裁切 304

15.17.3 Aspect Ratio Fitter长宽比例裁切 304

15.17.4 Horizontal Layout Group水平布局组 305

15.17.5 Vertical Layout Group垂直布局组 305

15.17.6 Grid Layout Group网格布局组 306



第 16章 音效和视频

16.1 音效系统 307

16.1.1 概述 307

16.1.2 常用组件 308

16.1.3 Audio Mixer音频混合 310

16.1.4 Audio Filters音频过滤 321

16.1.5 Audio Effects音频效果 325

16.1.6 Microphone麦克风 325

16.2 视频播放器 326

16.2.1 概述 326

16.2.2 Video Player组件 327

16.2.3 视频剪辑 328

16.2.4 视频透明度支持 328

16.2.5 全景视频 329

实践操作59:全景视频之海上冲浪 329



第 17章 全局光照

17.1 概述 333

17.1.1 Enlighten 333

17.1.2 Progressive Lightmapper 333

17.1.3 Lightmap seam stitching 334

17.2 实践操作60:烘焙光照用法示例 335

17.3 系统参数详解 338

17.3.1 FBX模型导入设置 338

17.3.2 Reflection Probe反射探针 338

17.3.3 Light Probe Group光照探针组件 341

17.3.4 Lighting 窗口 341

17.3.5 Light Explorer光探测器 345



第 18章 导航网格寻路

18.1 Unity的导航寻路系统 346

18.2 实践操作61:创建一个导航网格 347

18.3 系统参数详解 351

18.3.1 Navigation窗口 351

18.3.2 Nav Mesh Agent 352

18.3.3 Off Mesh Link 353

18.3.4 Nav Mesh Obstacle 353

18.4 综合案例:导航网格寻路的高级技巧 354

18.4.1 使用Off Mesh Link组件 354

18.4.2 为网格分层 355

18.4.3 动态更改可行进层 356

18.4.4 使用Nav Mesh Obstacle组件 358



第 19章 遮挡剔除

19.1 概述 359

19.2 参数详解 360

19.2.1 Occlusion窗口 360

19.2.2 Occlusion Area组件 362

19.2.3 Occlusion Portal组件 363

19.3 综合案例:遮挡剔除的使用 363



第 20章 后期屏幕渲染特效

20.1 概述 365

20.2 参数详解 367

20.2.1 Fog(雾效) 367

20.2.2 Anti-aliasing(抗锯齿) 368

20.2.3 Ambient Occlusion(环境光遮罩) 369

20.2.4 Screen Space Reflection(屏幕空间反射) 370

20.2.5 Depth of Field(景深) 371

20.2.6 Motion Blur(运动模糊) 372

20.2.7 Eye Adaptation(眼部适应) 373

20.2.8 Bloom(泛光) 374

20.2.9 Color Grading(颜色分级) 375

20.2.10 User Lut 378

20.2.11 Chromatic Aberration(色差) 379

20.2.12 Grain(颗粒) 379

20.2.13 Vignette(渐晕) 380

20.2.14 Dithering(抖动) 381

20.2.15 Debug Views(调试视图) 381

20.2.16 Monitors(监视器) 384



第 21章 Shader开发

21.1 Shader概述 386

21.2 内建Shader介绍 387

21.2.1 内建着色器 387

实践操作62:使用内建着色器 388

21.2.2 内建标准着色器 389

实践操作63:使用标准着色器 392

21.3 Shader的创建 393

21.4 ShaderLab基础语法 394

21.4.1 Properties属性 396

21.4.2 SubShader子着色器视图 398

21.4.3 Fallback备用着色器 399

21.4.4 Category(分类) 399

21.5 自定义Shader 400

21.5.1 Fixed Function Shaders(固定功能管线着色器) 400

21.5.2 Surface Shaders(表面着色器) 401

21.5.3 Vertex and Fragment Shaders(顶点片段着色器) 402

21.6 综合案例:着色器编写实例 404

21.6.1 表面着色器 404

21.6.2 顶点片段着色器 406



第 22章 AssetBundle工作流程

22.1 AssetBundle的创建 409

22.1.1 AssetBundle的UI 409

22.1.2 BuildPipeline BuildAsset-Bundles 410

实践操作64:AssetBundle的创建 411

22.1.3 Unity处理Assets之间的依赖 412

22.2 AssetBundle的下载 414

22.3 AssetBundle的加载和卸载 415

22.3.1 加载AssetBundle 415

22.3.2 从AssetBundle中加载Assets 417

22.3.3 AssetBundle Variant的使用 418

22.3.4 卸载AssetBundle 419

22.4 AssetBundle的内存管理 419

22.4.1 下载和加载AssetBundle时内存的影响 419

22.4.2 AssetBundle及Asset的卸载 420

22.5 AssetBundle工具 420

22.5.1 Configure的使用 421

22.5.2 Build的使用 423



第 23章 多人游戏和联网

23.1 授权服务器 425

23.2 非授权服务器 426

23.3 Hight Level API 426

23.4 Transport Layer API 427

23.5 Unity的多人游戏 429

23.5.1 集成多人游戏服务 430

实践操作65:使用HUD进行集成 430

23.5.2 使用Hight Level API进行集成 432

23.5.3 使用NetworkTransport进行集成 432

23.6 Unity网络组件介绍 439

23.6.1 Network Animator 439

23.6.2 Network Discovery 439

23.6.3 Network Identity 440

23.6.4 Network Lobby Manager 441

23.6.5 Network Lobby Player 442

23.6.6 Network Manager 443

23.6.7 Network Manager HUD 445

23.6.8 Network Proximity Checker 446

23.6.9 Network Start Position 446

23.6.10 Network Transform 446

23.6.11 Network Transform Child 447

23.6.12 Network Transform Visualizer 448

23.7 Unity的网络请求 449

23.7.1 常用操作:使用HLAPI 449

23.7.2 高级操作:使用LLAPI 453

23.8 综合案例:多人游戏实战 461

23.9 Unity服务 466

23.9.1 相关资源 466

23.9.2 Unity Ads广告 467

23.9.3 Unity Game Analytics游戏分析 467

23.9.4 Everyplay视频录制 468

23.9.5 Unity Cloud Build云构建 469

23.9.6 Unity Collaborate协同服务 469



第 24章 编辑器扩展

24.1 编辑器脚本 470

24.2 实践操作66:创建编辑器窗口 470

24.3 自定义Inspector视图 473

24.4 实践操作67:自定义Scene视图 474

24.5 第三方编辑器插件 475



第 25章 脚本调试与优化

25.1 实践操作68:脚本调试 476

25.2 Profiler性能分析器 478

25.2.1 Profiler的使用 478

25.2.2 iOS设备启用远程分析 481

25.2.3 Android设备启用远程分析 482

25.3 Log Files 482

25.4 脚本优化 484

25.4.1 各个平台通用的优化方案 484

25.4.2 移动设备的优化 485



第 26章 跨平台发布

26.1 Windows平台发布 487

26.1.1 实践操作69:Windows平台发布步骤 487

26.1.2 Player Settings参数详解 487

26.2 Android平台发布 493

26.2.1 实践操作70:Java SDK的环境配置 493

26.2.2 Android SDK的安装 494

26.2.3 实践操作71:Android平台发布步骤 494

26.2.4 Player Settings参数详解 495

26.3 iOS平台发布 500

26.3.1 实践操作72:iOS平台发布前的准备工作 500

26.3.2 实践操作73:项目工程的输出和发布 501

26.3.3 Player Settings参数详解 502

26.4 WebGL平台发布 506

26.4.1 实践操作74:WebGL平台发布步骤 506

26.4.2 Player Settings参数详解 507

26.5 Facebook平台发布 510

26.5.1 实践操作75:Facebook平台发布步骤 510

26.5.2 Player Settings参数详解 511



第 27章 案例分析之Tanks

27.1 案例工程文件下载 512

27.2 场景设置 513

27.2.1 场景碰撞区域设置 513

27.2.2 坦克初始位置 514

27.3 游戏控制 514

27.4 后期屏幕渲染特效 515

27.4.1 Bloom 515

27.4.2 Color Grading 515

27.4.3 Chromatic Aberration 516

27.4.4 Vignette 516

27.5 静态批处理 516

27.6 游戏管理 517

27.6.1 游戏参数设置 517

27.6.2 游戏流程控制逻辑 518

27.7 坦克控制 521

27.7.1 坦克运动控制的实现 521

27.7.2 坦克血条的实现 524

27.7.3 坦克射击的实现 526

27.8 相机控制 530



第 28章 Unity 2018新特性

28.1 项目模板功能 533

28.1.1 3D附带额外设置 534

28.1.2 高清晰渲染管线 534

28.1.3 轻量级渲染管线 535

28.1.4 轻量级VR渲染管线 535

28.2 Package Manager 536

实践操作76:Package Manager的相关操作 537

28.3 着色器视图Shader Graph 538

28.3.1 安装Shader Graph 539

实践操作77:安装Shader Graph 539

28.3.2 Shader Graph功能介绍 540

28.4 可编程渲染管线SRP 540

28.4.1 SRP批处理器加速CPU渲染 541

28.4.2 可编程着色器变体移除 541

28.4.3 轻量级渲染管线(预览版) 541

28.4.4 高清晰渲染管线(预览版) 542

28.5 特效编辑器VFX Graph 543

实践操作78:Visual Effect Graph的安装 543




【书摘与插画】

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Unity 2017 从入门到精通
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon