新書推薦:
《
甲骨文丛书·消逝的光明:欧洲国际史,1919—1933年(套装全2册)
》
售價:HK$
277.8
《
剑桥日本戏剧史(剑桥世界戏剧史译丛)
》
售價:HK$
207.0
《
中国高等艺术院校精品教材大系:材料的时尚表达??服装创意设计
》
售價:HK$
78.2
《
美丽与哀愁:第一次世界大战个人史
》
售價:HK$
147.2
《
国家豁免法的域外借鉴与实践建议
》
售價:HK$
188.2
《
大单元教学设计20讲
》
售價:HK$
78.2
《
儿童自我关怀练习册:做自己最好的朋友
》
售價:HK$
71.3
《
高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量)
》
售價:HK$
62.7
|
編輯推薦: |
全面讲解了Unity 5的新特性和新应用
讲解了用Unity5进行3D游戏开发的高级技术:如着色器、高级光影效果、动画、刚体、碰撞器、粒子系统、关节、交通工具及布料、天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、加速度传感器及雾特效、地形引擎、拖尾渲染及导航网格和寻路系统、光源、光照烘焙、法线贴图、实时阴影、镜面特效、波动水面真实效果以及立方图纹理等高级特效
用综合案例讲解了Unity 3D强大的物理引擎具体应用和NGUI、ShaderLab的实战技术
|
內容簡介: |
本书对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细介绍,内容深入浅出,是一本适合不同需求、不同开发水平读者的技术宝典。
全书共分16章。第1章主要介绍了Unity 3D的诞生、特点、开发环境的搭建及运行机制;第2章对Unity 3D集成开发环境进行了详细介绍;第3章介绍了Unity 3D中脚本的编写;第4章主要对Unity 3D开发过程中经常使用的组件及对象进行了详细介绍;第5章介绍了Unity游戏开发中非常流行的第三方UI界面开发组件库—NGUI的基础知识;第6章介绍了Unity开发平台的完整的物理引擎体系;第7章介绍了Unity 3D中的着色器和着色器语言—ShaderLab;第8章介绍了天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、重力加速度传感器及雾特效等开发常用的技术;第9章介绍了Unity中经常使用的光影效果,主要包括各种光源、光照烘焙、法线贴图、镜面特效、波动水面真实效果等技术;第10章介绍了Unity中模型的网格概念及新旧动画系统;第11章介绍了Unity自带的地形引擎、拖尾渲染及导航网格和寻路系统等知识;第12章介绍了AssetBundle更新资源包的使用;第13章介绍了Unity中的多线程技术与网络开发;第14章介绍了Unity 2D游戏开发工具;第15章介绍了Unity 3D提供的Profiler工具的使用方法,及断点调试的两种方式;第16章介绍了完整的大型3D游戏案例—指间足球。
为了便于读者学习,本书还附赠光盘,包含了书中所有案例的完整源代码,能够帮助读者快速掌握开发技术。
|
關於作者: |
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师。近十年来为数十家企业培养了上千名高级软件开发人员,曾编写过《Unity 3D游戏开发技术详解与典型案例》、《Unity 4 3D开发实战详解》、《Unity游戏案例开发大全》等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列Android应用程序与3D游戏。
|
目錄:
|
目 录
第1章 Unity基础以及开发环境的搭建1
1.1 Unity基础知识概览1
1.1.1 初识Unity1
1.1.2 Unity的诞生及发展1
1.1.3 Unity广阔的市场前景2
1.1.4 独具特色的Unity3
1.2 Unity开发环境的搭建7
1.2.1 Windows平台下Unity的下载
及安装7
1.2.2 Mac OS平台下Unity的下载
及安装11
1.2.3 目标平台的SDK与Unity
集成14
1.3 **个Unity程序17
1.4 本书案例的导入及运行21
1.5 本章小结25
第2章 Unity集成开发环境详解27
2.1 Unity集成开发环境的整体布局27
2.1.1 Unity集成开发环境的整体
布局27
2.1.2 菜单栏28
2.1.3 工具栏28
2.1.4 场景设计面板29
2.1.5 游戏预览面板32
2.1.6 游戏组成对象列表33
2.1.7 项目资源列表34
2.1.8 属性查看器35
2.1.9 状态栏与控制台35
2.1.10 动画视图36
2.1.11 动画控制器编辑视图36
2.2 菜单栏37
2.2.1 文件(File)37
2.2.2 编辑(Edit)40
2.2.3 资源(Assets)46
2.2.4 游戏对象(GameObject)52
2.2.5 组件(Component)55
2.2.6 窗口(Window)60
2.2.7 帮助(Help)65
2.3 本章小结70
第3章 Unity脚本程序开发71
3.1 Unity脚本概述71
3.2 Unity中C#脚本的注意事项71
3.2.1 继承自MonoBehaviour类72
3.2.2 类名字必须匹配文件名72
3.2.3 使用Awake或Start方法初
始化72
3.2.4 Unity脚本中协同程序有不同的语法规则72
3.2.5 只有满足特定情况变量才能显示在属性查看器中72
3.2.6 尽量避免使用构造函数72
3.2.7 调试72
3.3 Unity脚本的基础语法73
3.3.1 常用操作73
3.3.2 记录时间74
3.3.3 访问游戏对象组件75
3.3.4 访问其他游戏对象76
3.3.5 向量78
3.3.6 成员变量和静态成员变量79
3.3.7 实例化游戏对象80
3.3.8 协同程序和中断80
3.3.9 一些重要的类81
3.3.10 性能优化85
3.3.11 脚本编译86
3.4 综合案例86
3.4.1 案例策划及准备工作87
3.4.2 创建项目及场景搭建87
3.4.3 飞机控制脚本实现89
3.4.4 摄像机跟随脚本实现92
3.5 本章小结93
第4章 Unity 3D图形用户界面基础95
4.1 GUI图形用户界面系统95
4.1.1 图形用户界面组件的变量95
4.1.2 图形用户界面中的常用控件102
4.1.3 图形用户界面控件综合案例125
4.2 UGUI图形用户界面系统127
4.2.1 创建UGUI控件127
4.2.2 Canvas画布128
4.2.3 EventSystem129
4.2.4 RectTransform组件130
4.2.5 Panel控件130
4.2.6 Button控件131
4.2.7 Text控件134
4.2.8 Image控件135
4.2.9 Raw Image控件135
4.2.10 Slider控件136
4.2.11 Scrollbar控件137
4.2.12 Toggle控件138
4.2.13 Input Field控件139
4.2.14 UGUI布局管理的使用及相
关组件介绍140
4.2.15 UGUI中不规则形状的按钮
的碰撞检测142
4.2.16 Scroll View的制作143
4.2.17 UGUI综合案例—音乐播
放器的UI搭建145
4.3 预制件(prefab)资源的应用153
4.3.1 预制件(prefab)资源的
创建153
4.3.2 通过prefab资源进而实例化
对象154
4.4 常用的输入对象155
4.4.1 Touch输入对象155
4.4.2 Input输入对象157
4.5 与销毁相关的方法161
4.5.1 Object.Destroy方法162
4.5.2 NetWork.Destroy方法162
4.5.3 MonoBehaviour.OnDestroy
方法163
4.6 本章小结163
第5章 Unity 3D 第三方2D
组件库—NGUI165
5.1 初识NGUI165
5.1.1 NGUI背景概述165
5.1.2 NGUI的导入165
5.1.3 UI层简介166
5.2 NGUI菜单介绍167
5.2.1 “Selection”菜单168
5.2.2 “Create”菜单168
5.2.3 “Attach”菜单168
5.2.4 “Tween”菜单173
5.2.5 “Open”菜单173
5.2.6 其他菜单175
5.3 控件工具的使用176
5.3.1 图片精灵—Sprite176
5.3.2 文本标签—Label177
5.3.3 图片精灵—Texture179
5.3.4 组件容器—Widget180
5.3.5 锚点—Anchor182
5.3.6 面板—Panel183
5.3.7 滚动视图—Scroll View184
5.3.8 网格—Grid186
5.3.9 表格—Table187
5.4 UI库中默认组件的制作187
5.4.1 按钮—Colored Button187
5.4.2 复选框—Colored Checkbox189
5.4.3 水平滚动条—Colored Horizontal Scroll Bar192
5.4.4 滑块—Colored Slider194
5.4.5 弹出列表—Colored Popup List197
5.4.6 输入框—Control - Simple Input Field199
5.5 杂项200
5.5.1 Atlas图集制作200
5.5.2 中文字体制作202
5.5.3 动画曲线编辑203
5.6 一个NGUI的综合案例204
5.6.1 界面一制作204
5.6.2 界面二制作207
5.6.3 界面三制作210
5.7 本章小结212
第6章 物理引擎213
6.1 刚体213
6.1.1 刚体特性213
6.1.2 物理管理器219
6.2 碰撞器221
6.2.1 碰撞器的添加222
6.2.2 碰撞过滤225
6.2.3 物理材质228
6.3 粒子系统229
6.3.1 粒子系统的简介229
6.3.2 粒子系统的特性230
6.3.3 粒子系统的综合使用238
6.4 关节243
6.4.1 铰链关节的特性243
6.4.2 铰链关节的创建244
6.4.3 固定关节的特性245
6.4.4 固定关节的创建245
6.4.5 弹簧关节的特性246
6.4.6 弹簧关节的创建247
6.4.7 角色关节的特性247
6.4.8 角色关节的创建248
6.4.9 可配置关节的特性249
6.4.10 可配置关节的创建250
6.4.11 关节综合案例—机械手251
6.5 交通工具256
6.5.1 车轮碰撞器添加256
6.5.2 车轮碰撞器的特性257
6.5.3 车轮碰撞器的应用258
6.6 布料262
6.6.1 蒙皮网格263
6.6.2 布料特性263
6.6.3 布料的简单案例264
6.7 力场265
6.7.1 力场组件特性265
6.7.2 力场综合案例266
6.8 物理引擎在动画系统中的使用267
6.8.1 场景的搭建267
6.8.2 脚本的开发270
6.8.3 运行效果271
6.9 物理引擎综合案例271
6.9.1 场景的搭建271
6.9.2 界面的搭建277
6.9.3 脚本的开发277
6.9.4 案例开发总结280
6.10 本章小结280
第7章 着色器—Shader281
7.1 初识着色器281
7.1.1 着色器概述281
7.1.2 ShaderLab语法基础282
7.1.3 着色器中涉及的各种空间
概念287
7.2 着色器的3种形态289
7.2.1 固定管线着色器289
7.2.2 顶点片元着色器290
7.2.3 表面着色器294
7.3 表面着色器295
7.3.1 表面着色器基础知识296
7.3.2 通过表面着色器实现体
积雾300
7.4 渲染通道的通用指令305
7.4.1 设置LOD数值305
7.4.2 渲染队列307
7.4.3 混合模式介绍309
7.4.4 Alpha测试310
7.4.5 深度测试312
7.4.6 通道遮罩314
7.4.7 面的剔除操作315
7.4.8 抓屏操作317
7.5 着色器的组织和优化318
7.5.1 着色器的组织和复用319
7.5.2 移动平台上的优化322
7.6 综合案例324
7.6.1 案例策划及准备工作325
7.6.2 创建项目及场景搭建326
7.6.3 着色器及相关脚本的开发327
7.6.4 结点对象的创建及相关脚本
的开发332
7.7 本章小结335
第8章 3D游戏开发的常用技术337
8.1 天空盒的应用337
8.1.1 Unity天空盒资源337
8.1.2 开发实际需要的天空盒339
8.2 3D拾取技术340
8.3 视频贴图343
8.3.1 基础知识343
8.3.2 视频贴图案例343
8.4 动态字体346
8.5 重力加速度传感器347
8.6 PlayerPrefs类349
8.7 虚拟按钮与摇杆的使用350
8.7.1 下载并导入标准资源包351
8.7.2 虚拟按钮和摇杆使用的
案例351
8.8 声音353
8.8.1 声音类型353
8.8.2 音频管理器—AudioManager354
8.8.3 音频监听器—Audio Listener354
8.8.4 音频源—Audio Source355
8.8.5 音频效果—Audio Effects357
8.8.6 音频混响区—Audio Reverb Zones360
8.8.7 简单的声音控制案例361
8.8.8 混音器—AudioMixer362
8.9 水特效367
8.9.1 基础知识367
8.9.2 案例368
8.10 雾特效370
8.10.1 案例效果与基本原理370
8.10.2 场景搭建及开发步骤370
8.11 本章小结373
第9章 光影效果的使用375
9.1 光源375
9.1.1 点光源(Point Light)375
9.1.2 定向光源
(Directional Light)377
9.1.3 聚光灯光源(Spot Light)377
9.1.4 区域光光源(Area Light)378
9.1.5 发光材质378
9.2 光照贴图的烘焙与使用379
9.2.1 对场景进行光照烘焙379
9.2.2 光照烘焙参数详解380
9.3 法线贴图383
9.3.1 在Unity中使用法线贴图383
9.3.2 如何在3D Max中制作法线
贴图386
9.4 镜子的开发387
9.4.1 场景的搭建388
9.4.2 镜面着色器的开发391
9.4.3 C#脚本的开发391
9.5 真实的水面效果开发394
9.5.1 基本原理394
9.5.2 场景的搭建395
9.5.3 C#脚本的开发396
9.5.4 镜面着色器的开发399
9.6 Unity 3D光照系统中的高级功能401
9.6.1 渲染路径与颜色空间401
9.6.2 Cookies402
9.6.3 Flare镜头光晕403
9.6.4 Culling Mask光照过滤404
9.6.5 阴影的设置404
9.6.6 Light Probes光探头406
9.7 Unity 3D 5.0中新增的光照功能
详解408
9.7.1 基于物理学的标准着色器408
9.7.2 反射探头(Reflection Probe)411
9.7.3 全局光照技术详解415
第10章 模型与动画419
10.1 3D模型导入419
10.1.1 主流3D建模软件的介绍419
10.1.2 Unity与建模软件单位的比
例关系420
10.1.3 将3D模型导入Unity421
10.2 网格Mesh422
10.2.1 网格过滤器(Mesh Filter)422
10.2.2 Mesh属性和方法介绍423
10.2.3 Mesh的使用423
10.2.4 使用Mesh使物体变形的一
个简单案例424
10.3 第三方切割工具库Shatter Toolkit
的使用429
10.3.1 Shatter Toolkit简介429
10.3.2 使用Shatter Toolkit的一个简单案例430
10.4 旧版动画系统438
10.4.1 导入角色动画资源438
10.4.2 动画控制器(Animation)439
10.4.3 动画脚本440
10.4.4 使用旧版动画系统的简单
案例441
10.5 Mecanim动画系统444
10.5.1 角色动画的配置444
10.5.2 动画控制器的创建447
10.5.3 动画控制器的配置448
10.5.4 角色动画的重定向451
10.5.5 角色动画的混合—创建动
画混合树453
10.5.6 角色动画的混合—混合类
型介绍455
10.5.7 Mecanim中的代码控制456
10.5.8 案例分析461
10.6 本章小结464
第11章 地形与寻路技术465
11.1 地形引擎465
11.1.1 地形的创建465
11.1.2 灰度图的使用469
11.2 拖尾渲染器—Trail Renderer471
11.2.1 背景介绍471
11.2.2 拖尾渲染器属性介绍471
11.2.3 拖尾渲染器的使用472
11.2.4 产生汽车轮胎拖痕案例472
11.2.5 产生汽车刹车痕案例474
11.3 自动寻路技术476
11.3.1 基础知识476
11.3.2 一个简单的案例477
11.4 本章小结481
第12章 游戏资源更新483
12.1 AssetBundle资源包483
12.1.1 AssetBundle简介483
12.1.2 创建AssetBundle483
12.1.3 AssetBundle的下载486
12.1.4 AssetBundle的加载和
卸载488
12.1.5 关于AssetBundle489
12.1.6 本节小结491
12.2 Lua热更新491
12.2.1 热更新的基本介绍491
12.2.2 Lua的基本情况介绍491
12.2.3 SimpleFramework框架
介绍492
12.2.4 热更新案例493
12.2.5 本节小结498
12.3 本章小结498
第13章 多线程技术与网络开发499
13.1 多线程技术499
13.1.1 基本知识499
13.1.2 多线程技术用于大量
计算501
13.1.3 多线程技术在网络开发中的
应用503
13.2 WWW类506
13.2.1 用WWW类访问网络
资源506
13.2.2 场景搭建506
13.2.3 C#脚本的编写507
13.3 网络类—Network507
13.3.1 静态变量507
13.3.2 静态方法510
13.3.3 消息发送515
13.4 基于Unity Network开发网络
游戏516
13.4.1 非授权服务器和授权
服务器516
13.4.2 Network View 网络视图
组件517
13.4.3 案例的效果预览517
13.4.4 案例场景的搭建517
13.4.5 项目主体脚本的开发520
13.4.6 服务器和客户端的发布525
13.5 基于Socket开发Unity网络游戏525
13.5.1 网络游戏架构简介526
13.5.2 案例的效果预览与资源
准备527
13.5.3 案例场景的搭建528
13.5.4 服务器端的开发531
13.5.5 客户端的开发532
13.6 本章小结540
第14章 Unity 2D游戏开发541
14.1 Unity 2D基础介绍541
14.1.1 Unity 2D项目的创建541
14.1.2 Unity 2D功能简要介绍542
14.1.3 Unity 2D游戏开发工作流程
的简要介绍542
14.2 Unity 2D核心功能对象—Sprite543
14.2.1 Sprite对象的创建和基本
用法543
14.2.2 换帧动画的制作544
14.2.3 制作换帧动画的具体步骤545
14.3 Unity 2D中的物理引擎549
14.3.1 2D刚体549
14.3.2 2D碰撞器552
14.3.3 2D关节554
14.3.4 使用2D物理引擎制作撞冰
块案例557
14.4 一个完整的2D游戏案例563
14.4.1 游戏玩法以及功能概述563
14.4.2 游戏的策划及准备工作564
14.4.3 游戏的架构565
14.4.4 菜单场景566
14.4.5 游戏场景568
14.5 本章小结574
第15章 常用性能优化技术575
15.1 程序性能的分析575
15.1.1 Profiler使用方法575
15.1.2 Profiler的参数说明576
15.2 代码的断点调试578
15.2.1 通过MonoDevelop调试578
15.2.2 Microsoft Visual Studio Tools for Unity的使用579
15.3 优化事项580
15.3.1 遮挡剔除技术581
15.3.2 批处理技术582
15.3.3 移动平台的优化技巧582
15.4 本章小结583
第16章 综合案例—指间足球585
16.1 背景以及功能概述585
16.1.1 游戏背景概述585
16.1.2 游戏功能简介585
16.2 游戏的策划及准备工作587
16.2.1 游戏的策划587
16.2.2 使用Unity开发游戏前的准
备工作587
16.3 游戏的架构590
16.3.1 各个场景的简要介绍590
16.3.2 游戏架构简介591
16.4 游戏主场景592
16.4.1 场景搭建592
16.4.2 主摄像机设置及脚本开发596
16.4.3 守门员游戏对象相关脚本
开发602
16.4.4 检测板游戏对象相关脚本
开发603
16.4.5 提示板游戏对象相关脚本的开发605
16.4.6 门框游戏对象相关脚本的
开发606
16.4.7 其他脚本的开发607
16.5 游戏界面的开发611
16.5.1 主菜单界面的搭建611
16.5.2 主菜单界面监听脚本的
开发615
16.5.3 游戏界面的搭建621
16.5.4 游戏界面监听脚本的开发622
16.5.5 游戏暂停界面监听脚本的
开发625
16.6 游戏的优化与改进626
|
|