关于我们
![]() ![]() |
Unity 2017 从入门到精通
Unity是在游戏开发和虚拟现实开发方面应用得非常广泛的软件,其功能强大,用户体验很友好,全世界已经有近千万注册用户。本书共分为28章,主要介绍Unity 2017的安装和使用方法,以循序渐进的方式详细讲解Unity操作界面、Timeline、资源导入流程、场景创建、粒子系统、Mecanim动画系统、物理引擎、地形系统、脚本语言开发、Shader开发、脚本调试优化与内存管理、跨平台发布等内容。书中每章都安排了有针对性的项目实例,可以帮助读者轻松掌握软件的使用技巧。为了方便读者学习,本书还附赠相关的Unity工程源文件以帮助读者快速掌握Unity开发技术,并在最后一章详细介绍了Unity 2018版本的新特性。
本书面向广大Unity 初学者,以及有志于从事Unity开发工作的人员,同时也适合高等院校相关专业的学生和各类培训班的学员阅读参考。 1.Unity官方审核推荐学习手册、专业、全面; 2.从业10年以上专家型作者倾力打造; 3.全书28章内容,非常全面,内容讲解循序渐进,案例实操非常丰富; 4.全书超过70个动手操作练习助力高效学习; 5.书中案例文件扫描二维码即可下载。
刘向群,
Unity 官方认证价值专家(UVP)、Unity UUG 福州负 责人、工业与信息化部 VR 认证讲师。毕业于西安通信学院 ,计算机应用专业。拥有十多年 VR/AR 从业经验,曾参与《网上世博会》《数字奥运》《网 易 3D 家具》等 VR 项目实施。北京犀牛数字互动科技 有限公司创始人,中国虚拟现实产业联盟理事,中国 虚拟现实与可视化联盟理事,中国计算机学会 AC 学术 委员。组织并参与出版书籍:《VR/AR/MR 开发实战》《虚拟现实:从梦想到现实》《Unity 4.X 从入门到精通》 《Unity 5.X 从入门到精通》。 吴彬, 毕业于西安欧亚学院 ,计算机信息管 理专业。2004 年起专注于虚拟现实领域,资深虚拟现 实从业人员。《Unity 4.X 从入门到精通》《Unity 5.X 从入门到精通》的作者之一。精通 3ds MAX、Maya、 Unity 等 3D 软件。具有极其深厚的 VR 技术功底,开 发过《数字奥运》 《第三星球》等多个大型虚拟现实 项目。
第 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
你还可能感兴趣
我要评论
|