Unity 3D游戏开发(第2版)

Unity 3D游戏开发(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

本书涵盖了Unity 3D实际应用中的各类功能,全方面讲解了其运行原理。

内容简介

Unity 是一款市场占有率非常高的商业游戏引擎,横跨25 个主流游戏平台。本书基于Unity 2018,结合2D 游戏开发和3D 游戏开发的案例,详细介绍了它的方方面面,内容涉及编辑器、游戏脚本、UGUI 游戏界面、动画系统、持久化数据、静态对象、多媒体、资源加载与优化、自动化与打包等。

本书适合初学者或者有一定基础的开发者阅读。

作者简介

作者宣雨松,雨松MOMO技术博客博主,10年以上游戏开发经验,北京某上市游戏公司Unity技术专家,国内Unity User Group意见领袖,UVP价值专家,来自古城西安。

章节目录

版权信息

序一

序二

推荐语

前言

第1章 基础知识

1.1 Unity简介

1.2 跨平台与多工种协作

1.3 Unity版本

1.4 Unity内置资源或拓展资源

1.5 示例项目打包与发布

1.6 Unity服务

1.7 小结

第2章 编辑器的结构

2.1 游戏项目

2.1.1 创建项目

2.1.2 打开项目

2.1.3 版本管理

2.1.4 安装多个版本的Unity

2.2 Project视图

2.2.1 创建资源

2.2.2 搜索资源

2.2.3 搜索标签

2.3 Hierarchy视图

2.3.1 创建游戏对象

2.3.2 搜索游戏对象

2.4 Inspector视图

2.4.1 标题栏

2.4.2 组件栏

2.5 Scene视图

2.5.1 导航栏

2.5.2 标题栏

2.5.3 坐标系控制器

2.5.4 视图预览

2.6 Game视图

2.6.1 标题栏

2.6.2 视图预览

2.7 导航栏视图

2.8 其他功能

2.8.1 小锁头

2.8.2 窗口菜单

2.8.3 保存组件参数

2.8.4 Package Manager

2.9 小结

第3章 拓展编辑器

3.1 拓展Project视图

3.1.1 拓展右键菜单

3.1.2 创建菜单

3.1.3 拓展布局

3.1.4 监听事件

3.2 拓展Hierarchy视图

3.2.1 拓展菜单

3.2.2 拓展布局

3.2.3 重写菜单

3.3 拓展Inspector视图

3.3.1 拓展源生组件

3.3.2 拓展继承组件

3.3.3 组件不可编辑

3.3.4 Context菜单

3.4 拓展Scene视图

3.4.1 辅助元素

3.4.2 辅助UI

3.4.3 常驻辅助UI

3.4.4 禁用选中对象

3.5 拓展Game视图

3.6 MenuItem菜单

3.6.1 覆盖系统菜单

3.6.2 自定义菜单

3.6.3 源生自定义菜单

3.6.4 拓展全局自定义快捷键

3.7 面板拓展

3.7.1 Inspector面板

3.7.2 EditorWindows窗口

3.7.3 EditorWindows下拉菜单

3.7.4 预览窗口

3.7.5 获取预览信息

3.8 Unity编辑器的源码

3.8.1 查看DLL

3.8.2 清空控制台日志

3.8.3 获取EditorStyles样式

3.8.4 获取内置图标样式

3.8.5 拓展默认面板

3.8.6 例子:查找ManagedStaticReferences()静态引用

3.8.7 UIElements

3.8.8 查询系统窗口

3.8.9 自定义资源导入类型

3.9 小结

第4章 游戏脚本

4.1 创建脚本

4.1.1 脚本模板

4.1.2 拓展脚本模板

4.2 脚本的生命周期

4.2.1 脚本绑定事件

4.2.2 脚本初始化和销毁

4.2.3 脚本更新与协程任务

4.2.4 停止协程任务

4.2.5 使用OnGUI显示FPS

4.3 多脚本管理

4.3.1 脚本的执行顺序

4.3.2 多脚本优化

4.4 脚本序列化

4.4.1 查看数据

4.4.2 私有序列化数据

4.4.3 serializedObject

4.4.4 监听部分元素修改事件

4.4.5 序列化/反序列化监听

4.4.6 ScriptableObject

4.4.7 脚本的Attributes特性

4.4.8 单例脚本

4.4.9 定时器

4.4.10 CustomYieldInstruction

4.4.11 工作线程

4.5 脚本编译

4.5.1 编译规则

4.5.2 优化编译

4.5.3 编译DLL

4.5.4 脚本跨平台

4.5.5 程序集定义

4.5.6 日志

4.6 脚本调试

4.7 小结

第5章 UGUI游戏界面

5.1 基础元素

5.1.1 Text

5.1.2 描边和阴影

5.1.3 动态字体

5.1.4 字体花屏

5.1.5 Image组件

5.1.6 Raw Image组件

5.1.7 Button组件

5.1.8 Toggle组件

5.1.9 Slider组件

5.1.10 Scrollbar & ScrollView组件

5.1.11 使用ScrollRect组件制作游戏摇杆

5.2 事件系统

5.2.1 UI事件

5.2.2 UI事件管理

5.2.3 UnityAction和UnityEvent

5.2.4 RaycastTarget优化

5.2.5 渗透UI事件

5.2.6 例子——新手引导聚合动画

5.3 Canvas组件

5.3.1 自适应屏幕

5.3.2 锚点对齐方式

5.3.3 背景图全屏

5.3.4 布局组件

5.3.5 Canvas优化

5.4 Atlas

5.4.1 创建Atlas

5.4.2 读取Atlas

5.4.3 Variant

5.4.4 多图集管理

5.5 UGUI实例

5.5.1 置灰

5.5.2 粒子特效与UI的排序

5.5.3 Mask & RectMask2D裁切

5.5.4 粒子的裁切

5.5.5 粒子自适应

5.5.6 滑动列表嵌套

5.5.7 UI模板嵌套

5.5.8 UI特效与界面分离

5.5.9 输入事件

5.5.10 按钮不规则点击区域

5.5.11 更换默认Shader

5.5.12 小地图优化

5.5.13 查看UGUI源码

5.6 小结

第6章 2D游戏开发

6.1 Sprite

6.1.1 2D摄像机与分辨率自适应

6.1.2 Sprite Renderer排序

6.1.3 裁切

6.2 Sprite动画

6.2.1 创建2D动画

6.2.2 2D动画控制器

6.3 Tile地图

6.3.1 创建Tile

6.3.2 Tile Palette

6.3.3 编辑Tile

6.3.4 多Tile编辑与排序

6.3.5 拓展Tile Palette

6.3.6 拓展Tile

6.3.7 更新Tile

6.4 2D碰撞检测

6.4.1 Collider 2D

6.4.2 Rigidbody 2D

6.4.3 碰撞事件

6.4.4 碰撞方向

6.4.5 触发器监听

6.4.6 Effectors 2D

6.4.7 优化

6.4.8 计算区域

6.5 小结

第7章 动画系统

7.1 模型

7.1.1 Mesh Filter

7.1.2 Mesh Renderer

7.1.3 Prefab

7.2 动画编辑器

7.2.1 编辑器面板

7.2.2 在编辑器中添加事件

7.3 导入类动画

7.3.1 人形重定向动画

7.3.2 通用动画

7.3.3 老版动画

7.3.4 导入类动画事件

7.4 动画控制器

7.4.1 系统状态

7.4.2 切换条件

7.4.3 状态机脚本

7.4.4 IK动画

7.4.5 Root Motion

7.4.6 Avatar Mask

7.4.7 层

7.4.8 Blend Tree

7.4.9 非运行播放动画

7.4.10 Animator Override Controller

7.4.11 RuntimeAnimatorController

7.5 TimeLine编辑器

7.5.1 创建Timeline

7.5.2 Activation Track

7.5.3 Animation Track

7.5.4 Audio Track

7.5.5 Control Track

7.5.6 Playable Track

7.5.7 自定义 Track

7.6 Playables

7.6.1 播放动画

7.6.2 动画混合

7.6.3 音频混合

7.6.4 自定义脚本

7.7 Constraint

7.7.1 Aim Constraint

7.7.2 Parent Constraint

7.7.3 脚本控制约束

7.8 小结

第8章 持久化数据

8.1 Excel

8.1.1 EPPlus

8.1.2 读取Excel

8.1.3 写入Excel

8.1.4 JSON

8.1.5 JSON支持字典

8.2 文件读取与写入

8.2.1 PlayerPrefs

8.2.2 EditorPrefs

8.2.3 PlayerPrefs保存复杂结构

8.2.4 TextAsset

8.2.5 读写文本

8.2.6 运行期读写文本

8.2.7 PersistentDataPath目录

8.2.8 游戏存档

8.3 XML

8.3.1 创建XML

8.3.2 读取与修改

8.3.3 XML文件

8.4 YAML

8.4.1 YamlDotNet

8.4.2 序列化和反序列化

8.4.3 读取配置

8.5 小结

第9章 静态对象

9.1 Lightmap

9.1.1 设置烘焙贴图

9.1.2 实时光和焙贴光共存

9.1.3 灯光管理

9.1.4 运行时更换烘焙贴图

9.1.5 动态更换游戏对象

9.1.6 复制游戏对象

9.2 遮挡剔除

9.2.1 遮挡与被遮挡

9.2.2 遮挡与被遮挡事件

9.2.3 动态剔除

9.2.4 自定义遮挡剔除

9.3 Batching(静态合批)

9.3.1 设置静态合批

9.3.2 脚本静态合批

9.3.3 动态合批

9.3.4 静态合批的隐患

9.4 寻路网格

9.4.1 设置寻路

9.4.2 连接两点

9.4.3 获取寻路路径

9.4.4 动态阻挡

9.4.5 导出寻路网格信息

9.5 反射探头

9.6 小结

第10章 多媒体

10.1 音频

10.1.1 音频文件

10.1.2 Audio Source

10.1.3 3D音频

10.1.4 代码控制播放

10.1.5 混音区

10.1.6 Audio Mixer

10.1.7 录音

10.1.8 声音进度

10.2 视频

10.2.1 视频文件

10.2.2 视频渲染模式

10.2.3 视频自适应

10.2.4 UI盖在视频之上

10.2.5 视频渲染在材质上

10.2.6 视频Render Texture

10.2.7 播放工程外视频

10.2.8 自定义视频显示

10.2.9 视频进度

10.3 小结

第11章 资源加载与优化

11.1 编辑模式

11.1.1 加载资源

11.1.2 实例化Prefab

11.1.3 创建Prefab

11.1.4 更新Prefab

11.1.5 卸载资源

11.1.6 游戏对象与资源的关系

11.2 版本管理

11.2.1 .meta文件

11.2.2 多工程

11.2.3 同步文件

11.2.4 SVN外链

11.3 运行模式

11.3.1 引用资源

11.3.2 Resources

11.3.3 删除对象

11.3.4 删除资源

11.3.5 GC

11.4 AssetBundle

11.4.1 设置AssetBundle

11.4.2 依赖关系

11.4.3 通过脚本设置依赖关系

11.4.4 压缩格式

11.4.5 加载包体内的AssetBundle

11.4.6 下载AssetBundle

11.4.7 加载场景

11.4.8 卸载AssetBundle

11.5 游戏对象

11.5.1 创建游戏对象

11.5.2 Transform设置排序

11.5.3 删除节点

11.5.4 获取游戏对象

11.5.5 管理游戏组件

11.6 优化工具

11.6.1 重复无用资源

11.6.2 查看内存

11.6.3 查看CPU效率

11.6.4 自定义观察区间

11.6.5 Profiler信息的导出与导入

11.6.6 Frame Debugger

11.7 资源管理实例

11.7.1 特殊内置的文件夹

11.7.2 隐藏文件夹

11.7.3 Resources与AssetBundle无缝切换

11.7.4 资源加载策略

11.7.5 资源更新

11.7.6 资源引用关系

11.7.7 系统资源修改

11.7.8 AssetBundle里的脚本

11.7.9 热更新代码

11.8 小结

第12章 自动化与打包

12.1 资源导入

12.1.1 监听导入事件

12.1.2 自动设置贴图压缩格式

12.1.3 自动设置模型

12.1.4 禁止模型生成材质文件

12.1.5 删除移动资源事件

12.1.6 选择性自动设置

12.1.7 主动设置

12.1.8 待保存状态

12.1.9 自动执行MenuItem

12.2 配置错误

12.2.1 主动检查工具

12.2.2 被动检查工具

12.2.3 导出类检查工具

12.2.4 导出UI

12.2.5 生成UI代码

12.2.6 导出模型

12.2.7 不参与保存对象

12.2.8 导出场景

12.2.9 过滤无用场景

12.3 自动打包

12.3.1 打包前后事件

12.3.2 打包后自动压缩

12.3.3 用C# 调用shell脚本

12.3.4 等待shell结束

12.3.5 shell脚本调用C

12.3.6 shell脚本自动打包

12.3.7 彻底解放程序员的双手

12.4 自动构建图集与压缩

12.4.1 UI图集的压缩

12.4.2 非UI图集压缩

12.5 小结

第13章 3D游戏开发

13.1 Shader

13.1.1 固定渲染管线

13.1.2 可编程渲染管线

13.1.3 可编程渲染管线的表面着色器

13.1.4 深度排序

13.1.5 透明

13.1.6 裁切

13.1.7 着色器变体采集

13.2 摄像机

13.2.1 3D坐标转换屏幕坐标

13.2.2 3D坐标转换UI坐标

13.2.3 主摄像机

13.2.4 在UI上显示模型

13.2.5 Render Texture

13.2.6 在Render Texture上显示带特效的模型

13.2.7 LOD Group

13.3 场景管理

13.3.1 切换场景

13.3.2 DontDestroyOnLoad

13.3.3 异步加载场景以及进度

13.3.4 多场景

13.3.5 多场景游戏对象管理

13.3.6 场景切换事件

13.3.7 多场景烘焙

13.4 输入事件

13.4.1 全局事件

13.4.2 射线

13.4.3 点选3D模型

13.4.4 通过点击控制人物移动

13.5 物理碰撞

13.5.1 碰撞器

13.5.2 角色控制器

13.5.3 碰撞区域

13.5.4 碰撞检测

13.5.5 碰撞触发器

13.5.6 物理调试器

13.6 实战技巧

13.6.1 3D头顶文字

13.6.2 图文混排

13.6.3 图片数字

13.6.4 游戏对象缓存池

13.6.5 游戏资源缓存池

13.6.6 运行时合并网格

13.6.7 运行时合并贴图

13.7 小结

作者简介

Unity 3D游戏开发(第2版)是2018年由人民邮电出版社出版,作者宣雨松。

得书感谢您对《Unity 3D游戏开发(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
PremiereProCC视频编辑与特效制作核心技能一本通 电子书
本书以Adobe Premiere Pro 2020为蓝本,讲解了Premiere在视频编辑中的核心应用。
DirectX 12 3D 游戏开发实战 电子书
本书讲解如何使用DirectX12进行3D游戏的开发,从基础开始,由浅入深地引导你进行学习。
Unity 2017经典游戏开发教程:算法分析与实现 电子书
Unity目前是全世界优秀的游戏渲染引擎平台,其中程序开发也有自己的一套规则和技巧。本书基于此,使用Unity C#编程模块,实现18款经典小游戏的算法。不论是游戏开发爱好者,还是专业人士,都能从本书学习到:(1)Unity程序脚本入口及与场景模块相关联的编程操作流程与算法分析。(2)C#的程序编写技巧。(3)学习整个游戏开发的综合流程与策划思路,以便将来更好的融入相关团队。
中文版Illustrator2021完全自学教程 电子书
本书适合Illustrator初学者,以及从事设计和创意工作的人员使用,同时也适合高等院校相关专业的学生和各类培训班的学员阅读与参考。
游戏UI设计原则与实例指导手册 电子书
一本注重思维引导与方法实践的游戏界面设计教程。