Unity3D性能优化方案
来源:互联网 发布:mac装win10wifi用不了 编辑:程序博客网 时间:2024/06/05 16:27
一:什么是性能优化?
常见的优化类型包括:性能优化(重点),流程优化,体验优化。
性能优化的目标:(1)游戏流畅运行,(多种帧数标准,避免卡顿)
常见的帧数标准:60帧(终极目标),30帧(移动端要求),24帧。
(2)游戏符合市场需要。(硬件的兼容性 ,安装包的大小。)
二:优化常见的误区:
误区一:我的游戏很简单,不需要优化。
正解简单:玩法简单,架构简单。与优化无关哦!
误区二:优化工作尽早进行。
正解:由于项目是团队开发的,优化过早的话造成代码改动的地方会有很多地方呢!过早优化还会浪费时间和精力,而且意义不大。
误区三:性能优化=Degbug
正解:它们直接毫无关系。
三:游戏优化的两大原则:
(1)不过早做优化。
(2)用户不察觉原则。
a.玩家不一定能发现欠优化的地方。
b.玩家不一定能发现优化后欠佳的地方。
四:优化的组成部分:
脚本,
图形与物理,
文件。
脚本:1.常见的性能黑点(不够好的地方)。
2.如何找到需要优化的代码。
图形与物理:
1.美术资源
2.物理效果
文件:
1.安装包的优化
2.资源包的优化
3.工作流程的优化
所有游戏都要优化吗?
三个事实:
**1.性能完美是我们追求的目标。
2.不同类型的游戏对优化的侧重点不一样。
3.优化工作占生命周期非常大的一部分**
五: Profile(分析器)与时间
Profiler:用来评估性能的工具。
运行之后的工作状态哦!
CPU资源使用情况。
显卡资源的使用情况。
内存资源。
音频资源。
视频资源。
物理碰撞资源。
网络通信情况。
六:使用profiler
七:常规循环与变量调用
void FixedUpdate() { } void Update() { } void LateUpdate() {}
变量的隐性调用。
这三个是常规的循环:优化工作中看看是否常规循环中是否有不不要的东西。
八:场景搜索与协程
GameObject.Find()方法的使用。
当频繁的使用一个物体是,可以将其存储起来,方便多次使用哦!
九:合理降低数学精度
1.计算距离 Vector3.magnitude 长度 返回向量的长度(只读)使用但是使用sqrMagnitude(计算平方很快)来更优化呢!
举例说明:
点积>0表示向量同向。
float distance1 = (player1.position - transform.position).magnitude; float distance2 = (player2.position - transform.position).magnitude; print(distance1); print(distance2); print(distance1 < distance2); float distance11 = (player1.position - transform.position).sqrMagnitude; float distance22 = (player2.position - transform.position).sqrMagnitude; print(distance11); print(distance22); print(distance11 < distance22);
float angle = Vector3.Angle(player2.forward, player1.forward); float dot = Vector3.Dot(player2.forward, player1.forward); print(dot); print(angle);
十:对象池 优化技术(以后会更新的,下次讲啦!)
- Unity3D性能优化方案
- Unity3D游戏优化方案
- Unity3D 性能优化工具
- Unity3D开发性能优化
- Unity3D性能优化
- unity3d 性能 脚本优化
- unity3D开发性能优化
- Unity3D开发性能优化
- Unity3D开发性能优化
- Unity3D的优化性能
- unity3d的性能优化
- Unity3d之性能优化
- Unity3D性能优化总结
- Unity3D开发性能优化
- Unity3D性能优化
- Unity3D性能优化总结
- Unity3D性能优化总结
- Unity3D - 图形性能优化
- (Android Studio 3.0 + Win10)SDK Manager按钮能用,AVD Manager按钮不能用
- 【06-Redis事务】
- SqlServer初始化表自增列
- 方框如何打勾、打叉与涂黑(转)
- 自定义类型
- Unity3D性能优化方案
- 学习经验总结和分享
- docker下安装slurm集群搭建
- 利用redis缓存解决高并发下后端重复请求措施
- Oracle创建Sequence时Order/NoOrder选项
- kubernetes:minikube(ubuntu14.04+virtualbox5.2+kubectl+minikube)
- SVN的安装步骤以及入门教程
- view实现自定义小圆点滑动
- 机器学习高斯混合模型:聚类原理分析(前篇)