主编推荐语
本书对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游戏案例——指间足球。
目录
- 版权信息
- 内容提要
- 前言
- 第1章 Unity基础以及开发环境的搭建
- 1.1 Unity基础知识概览
- 1.1.1 初识Unity
- 1.1.2 Unity的诞生及发展
- 1.1.3 Unity广阔的市场前景
- 1.1.4 独具特色的Unity
- 1.2 Unity开发环境的搭建
- 1.2.1 Windows平台下Unity的下载及安装
- 1.2.2 Mac OS平台下Unity的下载及安装
- 1.2.3 目标平台的SDK与Unity集成
- 1.3 第一个Unity程序
- 1.4 本书案例的导入及运行
- 1.5 本章小结
- 第2章 Unity集成开发环境详解
- 2.1 Unity集成开发环境的整体布局
- 2.1.1 Unity集成开发环境的整体布局
- 2.1.2 菜单栏
- 2.1.3 工具栏
- 2.1.4 场景设计面板
- 2.1.5 游戏预览面板
- 2.1.6 游戏组成对象列表
- 2.1.7 项目资源列表
- 2.1.8 属性查看器
- 2.1.9 状态栏与控制台
- 2.1.10 动画视图
- 2.1.11 动画控制器编辑视图
- 2.2 菜单栏
- 2.2.1 文件(File)
- 2.2.2 编辑(Edit)
- 2.2.3 资源(Assets)
- 2.2.4 游戏对象(GameObject)
- 2.2.5 组件(Component)
- 2.2.6 窗口(Window)
- 2.2.7 帮助(Help)
- 2.3 本章小结
- 第3章 Unity脚本程序开发
- 3.1 Unity脚本概述
- 3.2 Unity中C#脚本的注意事项
- 3.2.1 继承自MonoBehaviour类
- 3.2.2 类名字必须匹配文件名
- 3.2.3 使用Awake或Start方法初始化
- 3.2.4 Unity脚本中协同程序有不同的语法规则
- 3.2.5 只有满足特定情况变量才能显示在属性查看器中
- 3.2.6 尽量避免使用构造函数
- 3.2.7 调试
- 3.3 Unity脚本的基础语法
- 3.3.1 常用操作
- 3.3.2 记录时间
- 3.3.3 访问游戏对象组件
- 3.3.4 访问其他游戏对象
- 3.3.5 向量
- 3.3.6 成员变量和静态成员变量
- 3.3.7 实例化游戏对象
- 3.3.8 协同程序和中断
- 3.3.9 一些重要的类
- 3.3.10 性能优化
- 3.3.11 脚本编译
- 3.4 综合案例
- 3.4.1 案例策划及准备工作
- 3.4.2 创建项目及场景搭建
- 3.4.3 飞机控制脚本实现
- 3.4.4 摄像机跟随脚本实现
- 3.5 本章小结
- 第4章 Unity 3D图形用户界面基础
- 4.1 GUI图形用户界面系统
- 4.1.1 图形用户界面组件的变量
- 4.1.2 图形用户界面中的常用控件
- 4.1.3 图形用户界面控件综合案例
- 4.2 UGUI图形用户界面系统
- 4.2.1 创建UGUI控件
- 4.2.2 Canvas画布
- 4.2.3 EventSystem
- 4.2.4 RectTransform组件
- 4.2.5 Panel控件
- 4.2.6 Button控件
- 4.2.7 Text控件
- 4.2.8 Image控件
- 4.2.9 Raw Image控件
- 4.2.10 Slider控件
- 4.2.11 Scrollbar控件
- 4.2.12 Toggle控件
- 4.2.13 Input Field控件
- 4.2.14 UGUI布局管理的使用及相关组件介绍
- 4.2.15 UGUI中不规则形状的按钮的碰撞检测
- 4.2.16 Scroll View的制作
- 4.2.17 UGUI综合案例——音乐播放器的UI搭建
- 4.3 预制件(prefab)资源的应用
- 4.3.1 预制件(prefab)资源的创建
- 4.3.2 通过prefab资源进而实例化对象
- 4.4 常用的输入对象
- 4.4.1 Touch输入对象
- 4.4.2 Input输入对象
- 4.5 与销毁相关的方法
- 4.5.1 Object.Destroy方法
- 4.5.2 NetWork.Destroy方法
- 4.5.3 MonoBehaviour.OnDestroy方法
- 4.6 本章小结
- 第5章 Unity 3D第三方2D组件库——NGUI
- 5.1 初识NGUI
- 5.1.1 NGUI背景概述
- 5.1.2 NGUI的导入
- 5.1.3 UI层简介
- 5.2 NGUI菜单介绍
- 5.2.1 “Selection”菜单
- 5.2.2 “Create”菜单
- 5.2.3 “Attach”菜单
- 5.2.4 “Tween”菜单
- 5.2.5 “Open”菜单
- 5.2.6 其他菜单
- 5.3 控件工具的使用
- 5.3.1 图片精灵——Sprite
- 5.3.2 文本标签——Label
- 5.3.3 图片精灵——Texture
- 5.3.4 组件容器——Widget
- 5.3.5 锚点——Anchor
- 5.3.6 面板——Panel
- 5.3.7 滚动视图——Scroll View
- 5.3.8 网格——Grid
- 5.3.9 表格——Table
- 5.4 UI库中默认组件的制作
- 5.4.1 按钮——Colored Button
- 5.4.2 复选框——Colored Checkbox
- 5.4.3 水平滚动条——Colored Horizontal Scroll Bar
- 5.4.4 滑块——Colored Slider
- 5.4.5 弹出列表——Colored Popup List
- 5.4.6 输入框——Control-Simple Input Field
- 5.5 杂项
- 5.5.1 Atlas图集制作
- 5.5.2 中文字体制作
- 5.5.3 动画曲线编辑
- 5.6 一个NGUI的综合案例
- 5.6.1 界面一制作
- 5.6.2 界面二制作
- 5.6.3 界面三制作
- 5.7 本章小结
- 第6章 物理引擎
- 6.1 刚体
- 6.1.1 刚体特性
- 6.1.2 物理管理器
- 6.2 碰撞器
- 6.2.1 碰撞器的添加
- 6.2.2 碰撞过滤
- 6.2.3 物理材质
- 6.3 粒子系统
- 6.3.1 粒子系统的简介
- 6.3.2 粒子系统的特性
- 6.3.3 粒子系统的综合使用
- 6.4 关节
- 6.4.1 铰链关节的特性
- 6.4.2 铰链关节的创建
- 6.4.3 固定关节的特性
- 6.4.4 固定关节的创建
- 6.4.5 弹簧关节的特性
- 6.4.6 弹簧关节的创建
- 6.4.7 角色关节的特性
- 6.4.8 角色关节的创建
- 6.4.9 可配置关节的特性
- 6.4.10 可配置关节的创建
- 6.4.11 关节综合案例——机械手
- 6.5 交通工具
- 6.5.1 车轮碰撞器添加
- 6.5.2 车轮碰撞器的特性
- 6.5.3 车轮碰撞器的应用
- 6.6 布料
- 6.6.1 蒙皮网格
- 6.6.2 布料特性
- 6.6.3 布料的简单案例
- 6.7 力场
- 6.7.1 力场组件特性
- 6.7.2 力场综合案例
- 6.8 物理引擎在动画系统中的使用
- 6.8.1 场景的搭建
- 6.8.2 脚本的开发
- 6.8.3 运行效果
- 6.9 物理引擎综合案例
- 6.9.1 场景的搭建
- 6.9.2 界面的搭建
- 6.9.3 脚本的开发
- 6.9.4 案例开发总结
- 6.10本章小结
- 第7章 着色器——Shader
- 7.1 初识着色器
- 7.1.1 着色器概述
- 7.1.2 ShaderLab语法基础
- 7.1.3 着色器中涉及的各种空间概念
- 7.2 着色器的3种形态
- 7.2.1 固定管线着色器
- 7.2.2 顶点片元着色器
- 7.2.3 表面着色器
- 7.3 表面着色器
- 7.3.1 表面着色器基础知识
- 7.3.2 通过表面着色器实现体积雾
- 7.4 渲染通道的通用指令
- 7.4.1 设置LOD数值
- 7.4.2 渲染队列
- 7.4.3 混合模式介绍
- 7.4.4 Alpha测试
- 7.4.5 深度测试
- 7.4.6 通道遮罩
- 7.4.7 面的剔除操作
- 7.4.8 抓屏操作
- 7.5 着色器的组织和优化
- 7.5.1 着色器的组织和复用
- 7.5.2 移动平台上的优化
- 7.6 综合案例
- 7.6.1 案例策划及准备工作
- 7.6.2 创建项目及场景搭建
- 7.6.3 着色器及相关脚本的开发
- 7.6.4 结点对象的创建及相关脚本的开发
- 7.7 本章小结
- 第8章 3D游戏开发的常用技术
- 8.1 天空盒的应用
- 8.1.1 Unity天空盒资源
- 8.1.2 开发实际需要的天空盒
- 8.2 3D拾取技术
- 8.3 视频贴图
- 8.3.1 基础知识
- 8.3.2 视频贴图案例
- 8.4 动态字体
- 8.5 重力加速度传感器
- 8.6 PlayerPrefs类
- 8.7 虚拟按钮与摇杆的使用
- 8.7.1 下载并导入标准资源包
- 8.7.2 虚拟按钮和摇杆使用的案例
- 8.8 声音
- 8.8.1 声音类型
- 8.8.2 音频管理器——AudioManager
- 8.8.3 音频监听器——Audio Listener
- 8.8.4 音频源——Audio Source
- 8.8.5 音频效果——Audio Effects
- 8.8.6 音频混响区——Audio Reverb Zones
- 8.8.7 简单的声音控制案例
- 8.8.8 混音器——AudioMixer
- 8.9 水特效
- 8.9.1 基础知识
- 8.9.2 案例
- 8.10 雾特效
- 8.10.1 案例效果与基本原理
- 8.10.2 场景搭建及开发步骤
- 8.11 本章小结
- 第9章 光影效果的使用
- 9.1 光源
- 9.1.1 点光源(Point Light)
- 9.1.2 定向光源(Directional Light)
- 9.1.3 聚光灯光源(Spot Light)
- 9.1.4 区域光光源(Area Light)
- 9.1.5 发光材质
- 9.2 光照贴图的烘焙与使用
- 9.2.1 对场景进行光照烘焙
- 9.2.2 光照烘焙参数详解
- 9.3 法线贴图
- 9.3.1 在Unity中使用法线贴图
- 9.3.2 如何在3D Max中制作法线贴图
- 9.4 镜子的开发
- 9.4.1 场景的搭建
- 9.4.2 镜面着色器的开发
- 9.4.3 C#脚本的开发
- 9.5 真实的水面效果开发
- 9.5.1 基本原理
- 9.5.2 场景的搭建
- 9.5.3 C#脚本的开发
- 9.5.4 镜面着色器的开发
- 9.6 Unity 3D光照系统中的高级功能
- 9.6.1 渲染路径与颜色空间
- 9.6.2 Cookies
- 9.6.3 Flare镜头光晕
- 9.6.4 Culling Mask光照过滤
- 9.6.5 阴影的设置
- 9.6.6 Light Probes光探头
- 9.7 Unity 3D 5.0中新增的光照功能详解
- 9.7.1 基于物理学的标准着色器
- 9.7.2 反射探头(Reflection Probe)
- 9.7.3 全局光照技术详解
- 第10章 模型与动画
- 10.1 3D模型导入
- 10.1.1 主流3D建模软件的介绍
- 10.1.2 Unity与建模软件单位的比例关系
- 10.1.3 将3D模型导入Unity
- 10.2 网格Mesh
- 10.2.1 网格过滤器(Mesh Filter)
- 10.2.2 Mesh属性和方法介绍
- 10.2.3 Mesh的使用
- 10.2.4 使用Mesh使物体变形的一个简单案例
- 10.3 第三方切割工具库Shatter Toolkit的使用
- 10.3.1 Shatter Toolkit简介
- 10.3.2 使用Shatter Toolkit的一个简单案例
- 10.4 旧版动画系统
- 10.4.1 导入角色动画资源
- 10.4.2 动画控制器(Animation)
- 10.4.3 动画脚本
- 10.4.4 使用旧版动画系统的简单案例
- 10.5 Mecanim动画系统
- 10.5.1 角色动画的配置
- 10.5.2 动画控制器的创建
- 10.5.3 动画控制器的配置
- 10.5.4 角色动画的重定向
- 10.5.5 角色动画的混合——创建动画混合树
- 10.5.6 角色动画的混合——混合类型介绍
- 10.5.7 Mecanim中的代码控制
- 10.5.8 案例分析
- 10.6 本章小结
- 第11章 地形与寻路技术
- 11.1 地形引擎
- 11.1.1 地形的创建
- 11.1.2 灰度图的使用
- 11.2 拖尾渲染器--Trail Renderer
- 11.2.1 背景介绍
- 11.2.2 拖尾渲染器属性介绍
- 11.2.3 拖尾渲染器的使用
- 11.2.4 产生汽车轮胎拖痕案例
- 11.2.5 产生汽车刹车痕案例
- 11.3 自动寻路技术
- 11.3.1 基础知识
- 11.3.2 一个简单的案例
- 11.4 本章小结
- 第12章 游戏资源更新
- 12.1 AssetBundle资源包
- 12.1.1 AssetBundle简介
- 12.1.2 创建AssetBundle
- 12.1.3 AssetBundle的下载
- 12.1.4 AssetBundle的加载和卸载
- 12.1.5 关于AssetBundle
- 12.1.6 本节小结
- 12.2 Lua热更新
- 12.2.1 热更新的基本介绍
- 12.2.2 Lua的基本情况介绍
- 12.2.3 SimpleFramework框架介绍
- 12.2.4 热更新案例
- 12.2.5 本节小结
- 12.3 本章小结
- 第13章 多线程技术与网络开发
- 13.1 多线程技术
- 13.1.1 基本知识
- 13.1.2 多线程技术用于大量计算
- 13.1.3 多线程技术在网络开发中的应用
- 13.2 WWW类
- 13.2.1 用WWW类访问网络资源
- 13.2.2 场景搭建
- 13.2.3 C#脚本的编写
- 13.3 网络类——Network
- 13.3.1 静态变量
- 13.3.2 静态方法
- 13.3.3 消息发送
- 13.4 基于Unity Network开发网络游戏
- 13.4.1 非授权服务器和授权服务器
- 13.4.2 Network View网络视图组件
- 13.4.3 案例的效果预览
- 13.4.4 案例场景的搭建
- 13.4.5 项目主体脚本的开发
- 13.4.6 服务器和客户端的发布
- 13.5 基于Socket开发Unity网络游戏
- 13.5.1 网络游戏架构简介
- 13.5.2 案例的效果预览与资源准备
- 13.5.3 案例场景的搭建
- 13.5.4 服务器端的开发
- 13.5.5 客户端的开发
- 13.6本章小结
- 第14章 Unity 2D游戏开发
- 14.1 Unity 2D基础介绍
- 14.1.1 Unity 2D项目的创建
- 14.1.2 Unity 2D功能简要介绍
- 14.1.3 Unity 2D游戏开发工作流程的简要介绍
- 14.2 Unity 2D核心功能对象——Sprite
- 14.2.1 Sprite对象的创建和基本用法
- 14.2.2 换帧动画的制作
- 14.2.3 制作换帧动画的具体步骤
- 14.3 Unity 2D中的物理引擎
- 14.3.1 2D刚体
- 14.3.2 2D碰撞器
- 14.3.3 2D关节
- 14.3.4 使用2D物理引擎制作撞冰块案例
- 14.4 一个完整的2D游戏案例
- 14.4.1 游戏玩法以及功能概述
- 14.4.2 游戏的策划及准备工作
- 14.4.3 游戏的架构
- 14.4.4 菜单场景
- 14.4.5 游戏场景
- 14.5 本章小结
- 第15章 常用性能优化技术
- 15.1 程序性能的分析
- 15.1.1 Profiler使用方法
- 15.1.2 Profiler的参数说明
- 15.2 代码的断点调试
- 15.2.1 通过MonoDevelop调试
- 15.2.2 Microsoft Visual Studio Tools for Unity的使用
- 15.3 优化事项
- 15.3.1 遮挡剔除技术
- 15.3.2 批处理技术
- 15.3.3 移动平台的优化技巧
- 15.4 本章小结
- 第16章 综合案例——指间足球
- 16.1 背景以及功能概述
- 16.1.1 游戏背景概述
- 16.1.2 游戏功能简介
- 16.2 游戏的策划及准备工作
- 16.2.1 游戏的策划
- 16.2.2 使用Unity开发游戏前的准备工作
- 16.3 游戏的架构
- 16.3.1 各个场景的简要介绍
- 16.3.2 游戏架构简介
- 16.4 游戏主场景
- 16.4.1 场景搭建
- 16.4.2 主摄像机设置及脚本开发
- 16.4.3 守门员游戏对象相关脚本开发
- 16.4.4 检测板游戏对象相关脚本开发
- 16.4.5 提示板游戏对象相关脚本的开发
- 16.4.6 门框游戏对象相关脚本的开发
- 16.4.7 其他脚本的开发
- 16.5 游戏界面的开发
- 16.5.1 主菜单界面的搭建
- 16.5.2 主菜单界面监听脚本的开发
- 16.5.3 游戏界面的搭建
- 16.5.4 游戏界面监听脚本的开发
- 16.5.5 游戏暂停界面监听脚本的开发
- 16.6 游戏的优化与改进
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。