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








有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4