Unity3D简要性能优化方案

26 篇文章 1 订阅

一:什么是性能优化?
常见的优化类型包括:性能优化(重点),流程优化,体验优化。
性能优化的目标:(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);

十:对象池 优化技术(以后会更新的,下次讲啦!)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值