Unity 游戏优化(第2版)

Unity 游戏优化(第2版)

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

    关注微信公众号

因版权原因待上架

编辑推荐

系统讲解Unity3D性能优化,资深游戏开发者的手边工具书。

内容简介

Unity是一个令人惊叹的游戏开发框架,它包含大量的特性集且易于使用,有助于将一些最炫酷的处理和渲染功能呈现给业余爱好者和专业人士。

本书展示了如何使用Unity2017提升游戏性能,并演示高性能不仅局限于预算高的游戏。

由于没有什么能比糟糕的用户体验更快地让玩家远离游戏,因此本书首先解释了如何使用UnityProfiler检测问题,学习如何使用秒表、计时器和日志方法诊断问题。

接着介绍Unity内置的批处理流程,它们何时能用于提升性能;分析将在运行时使用最小化的空间、CPU和内存导入艺术资源,并发掘一些未充分利用的特性和方法,来管理资源数据。

然后深入研究Unity3D引擎的底层,讨论一些只有深入了解其内部工作原理的情况下才能理解的问题。

本书最后学习如何适当地组织资源来改进开发工作流,以及如何通过对象池快速有效地实例化资产。

作者简介

作者克里斯·迪金森,在英格兰一个安静的小角落里长大,对数学、科学,尤其是电子游戏满怀热情。他喜欢玩游戏并剖析游戏的玩法,并试图确定它们是如何工作的。主要著作:编写了一本关于游戏物理的教程((Learning Game Physics with Bullet Physics and OpenGL,Packt Publishing)和两本关于Unity性能优化的书籍。

章节目录

版权信息

推荐序1

推荐序2

译者序

译者简介

作者简介

致谢

审稿人简介

前言

第1章

研究性能问题

1.1

Unity Profiler

1.1.1 启动Profiler

1.1.2 Profiler窗口

1.2

性能分析的最佳方法

1.2.1 验证脚本是否出现

1.2.2 验证脚本次数

1.2.3 验证事件的顺序

1.2.4 最小化正在进行的代码更改

1.2.5 最小化内部影响

1.2.6 最小化外部影响

1.2.7 代码片段的针对性分析

1.3

关于分析的思考

1.3.1 理解Profiler工具

1.3.2 减少干扰

1.3.3 关注问题

1.4

本章小结

第2章

脚本策略

2.1

使用最快的方法获取组件

2.2

移除空的回调定义

2.3

缓存组件引用

2.4

共享计算输出

2.5

Update、Coroutines和InvokeRepeating

2.6

更快的GameObject空引用检查

2.7

避免从GameObject取出字符串属性

2.8

使用合适的数据结构

2.9

避免运行时修改Transform的父节点

2.10

注意缓存Transform的变化

2.11

避免在运行时使用Find()和SendMessage()方法

2.11.1 将引用分配给预先存在的对象

2.11.2 静态类

2.11.3 单例组件

2.11.4 全局消息传递系统

2.12

禁用未使用的脚本和对象

2.12.1 通过可见性禁用对象

2.12.2 通过距离禁用对象

2.13

使用距离平方而不是距离

2.14

最小化反序列化行为

2.14.1 减小序列化对象

2.14.2 异步加载序列化对象

2.14.3 在内存中保存之前加载的序列化对象

2.14.4 将公共数据移入ScriptableObject

2.15

叠加、异步地加载场景

2.16

创建自定义的Update()层

2.17

本章小结

第3章

批处理的优势

3.1

Draw Call

3.2

材质和着色器

3.3

Frame Debugger

3.4

动态批处理

3.4.1 顶点属性

3.4.2 网格缩放

3.4.3 动态批处理总结

3.5

静态批处理

3.5.1 Static标记

3.5.2 内存需求

3.5.3 材质引用

3.5.4 静态批处理的警告

3.5.5 静态批处理总结

3.6

本章小结

第4章

着手处理艺术资源

4.1

音频

4.1.1 导入音频文件

4.1.2 加载音频文件

4.1.3 编码格式与品质级别

4.1.4 音频性能增强

4.2

纹理文件

4.2.1 纹理压缩格式

4.2.2 纹理性能增强

4.3

网格和动画文件

4.3.1 减少多边形数量

4.3.2 调整网格压缩

4.3.3 恰当使用Read-Write Enabled

4.3.4 考虑烘焙动画

4.3.5 合并网格

4.4

Asset Bundle和Resource

4.5

本章小结

第5章

加速物理

5.1

物理引擎的内部工作情况

5.1.1 物理和时间

5.1.2 静态碰撞器和动态碰撞器

5.1.3 碰撞检测

5.1.4 碰撞器类型

5.1.5 碰撞矩阵

5.1.6 Rigidbody激活和休眠状态

5.1.7 射线和对象投射

5.1.8 调试物理

5.2

物理性能优化

5.2.1 场景设置

5.2.2 适当使用静态碰撞器

5.2.3 恰当使用触发体积

5.2.4 优化碰撞矩阵

5.2.5 首选离散碰撞检测

5.2.6 修改固定更新频率

5.2.7 调整允许的最大时间步长

5.2.8 最小化射线发射和边界体积检查

5.2.9 避免复杂的网格碰撞器

5.2.10 避免复杂的物理组件

5.2.11 使物理对象休眠

5.2.12 修改处理器迭代次数

5.2.13 优化布娃娃

5.2.14 确定何时使用物理

5.3

本章小结

第6章

动态图形

6.1

管线渲染

6.1.1 GPU前端

6.1.2 GPU后端

6.1.3 光照和阴影

6.1.4 多线程渲染

6.1.5 低级渲染API

6.2

性能检测问题

6.2.1 分析渲染问题

6.2.2 暴力测试

6.3

渲染性能的增强

6.3.1 启用/禁用GPU Skinning

6.3.2 降低几何复杂度

6.3.3 减少曲面细分

6.3.4 应用GPU实例化

6.3.5 使用基于网格的LOD

6.3.6 使用遮挡剔除

6.3.7 优化粒子系统

6.3.8 优化Unity UI

6.3.9 着色器优化

6.3.10 使用更少的纹理数据

6.3.11 测试不同的GPU纹理压缩格式

6.3.12 最小化纹理交换

6.3.13 VRAM限制

6.3.14 照明优化

6.3.15 优化移动设备的渲染性能

6.4

本章小结

第7章

虚拟速度和增强加速度

7.1

XR开发

7.1.1 仿真

7.1.2 用户舒适度

7.2

性能增强

7.2.1 物尽其用

7.2.2 单通道立体渲染和多通道立体渲染

7.2.3 应用抗锯齿

7.2.4 首选前向渲染

7.2.5 VR的图像效果

7.2.6 背面剔除

7.2.7 空间化音频

7.2.8 避免摄像机物理碰撞

7.2.9 避免欧拉角

7.2.10 运动约束

7.2.11 跟上最新发展

7.3

本章小结

第8章

掌握内存管理

8.1

Mono平台

内存域

8.2

代码编译

IL2CPP

8.3

分析内存

8.3.1 分析内存消耗

8.3.2 分析内存效率

8.4

内存管理性能增强

8.4.1 垃圾回收策略

8.4.2 手动JIT编译

8.4.3 值类型和引用类型

8.4.4 字符串连接

8.4.5 装箱(Boxing)

8.4.6 数据布局的重要性

8.4.7 Unity API中的数组

8.4.8 对字典键使用InstanceID

8.4.9 foreach循环

8.4.10 协程

8.4.11 闭包

8.4.12 .NET库函数

8.4.13 临时工作缓冲区

8.4.14 对象池

8.4.15 预制池

8.4.16 IL2CPP优化

8.4.17 WebGL优化

8.5

Unity、Mono和IL2CPP的未来

即将到来的C# Job System

8.6

本章小结

第9章

提示与技巧

9.1

编辑器热键提示

9.1.1 GameObject

9.1.2 Scene窗口

9.1.3 数组

9.1.4 界面

9.1.5 在编辑器内撰写文档

9.2

编辑器UI提示

9.2.1 脚本执行顺序

9.2.2 编辑器文件

9.2.3 Inspector窗口

9.2.4 Project窗口

9.2.5 Hierarchy窗口

9.2.6 Scene和Game窗口

9.2.7 Play模式

9.3

脚本提示

9.3.1 一般情况

9.3.2 特性

9.3.3 日志

9.3.4 有用的链接

9.4

自定义编辑器脚本和菜单提示

9.5

外部提示

9.6

本章小结

Unity 游戏优化(第2版)是2020年由清华大学出版社出版,作者。

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

购买这本书

你可能喜欢
Unity3D游戏开发标准教程 电子书
本书本着“起点低、终点高”的原则,内容覆盖了从学习Unity3D开发引擎必知必会的基础知识到能够熟练使用Unity3D开发引擎制作简单3D游戏的每一个阶段。全书共分为12章,前11章按照由易到难的顺序依次介绍了Unity基础与开发环境配置、脚本程序的开发、图形用户界面、物理引擎、着色器基础、3D游戏开发常用技术、光影效果、模型与动画、地形与寻路技术、游戏资源更新及网络开发。结尾一章给出了一个完整的
Unity 3D 游戏开发(微课版) 电子书
Unity引擎具备入门简单、操作便捷、功能系统强大、智能界面设计、面向组件开发、辅助配套环境好等特点,拥有丰富素材资源教程,社区交流学习氛围浓厚,可一键完成多平台开发和部署,很适合第一次接触游戏引擎的初学者入门。本书主要介绍Unity3D虚拟现实游戏开发技术,内容包括初识Unity游戏引擎、Unity引擎基础知识、Unity界面交互设计、Unity物理系统引擎、灯光材质地形系统、音视频动画特效系统
Unity 2017经典游戏开发教程:算法分析与实现 电子书
Unity目前是全世界优秀的游戏渲染引擎平台,其中程序开发也有自己的一套规则和技巧。本书基于此,使用Unity C#编程模块,实现18款经典小游戏的算法。不论是游戏开发爱好者,还是专业人士,都能从本书学习到:(1)Unity程序脚本入口及与场景模块相关联的编程操作流程与算法分析。(2)C#的程序编写技巧。(3)学习整个游戏开发的综合流程与策划思路,以便将来更好的融入相关团队。
新印象Unity2020游戏开发基础与实战 电子书
这是一本以技术讲解与项目实战为主的Unity游戏开发教程图书。
完美讲堂Unity3D游戏特效设计实战教程 电子书
  1.深入阐述Unity3D的基础操作、场景特效、3ds Max的基础操作及与Unity3D的配合、粒子系统的应用、物理攻击特效、法术攻击特效等。   2.精选特效案例对所学知识加以巩固,锻炼实际操作能力,包括火焰特效、雨雪特效、喷泉特效、陨石爆炸特效、徒手三连击特效、但丁暴怒动作特效、旋风打击特效、万里冰封特效、龙卷风特效、火焰气波特效等。   3.适合从事游戏开发及特效设计的初、中级读者阅读,同时也可以作为相关教育培训机构的教材。   4.随书附赠资源,内容包含本书实例的工程文件、场景文件,读者可以边学边看,学习更高效。