unity通过降低分辨率来提高游戏运行效率

之前做了一个小游戏,功能很简单,内容很少,但是游戏使用了1个后期shader,导致在一些低端的android机器上连30帧都跑不到,偏偏游戏又要在高帧率下才能有非常好的体验(跑酷类游戏),真是让人头疼,想要优化却没有什么头绪,游戏本身就很小,没啥逻辑,也没啥图,也不想要去掉shader,因为还要靠这个来给游戏效果加分。shader也很简单,没有复杂的运算,就算把shader的所有逻辑去掉,直接原样输出也会效率很低,所以可以确定应该是后期shader要遍历所有像素点而导致帧率下降,与运算没有关系,这样的话只要减少像素点的个数就行了,于是就想起的平时玩pc游戏的时候,经常通过降低游戏分辨率来提高游戏fps,那在手机上行不行呢,找了一下还真被我找到了:

https://docs.unity3d.com/ScriptReference/Screen.SetResolution.html

Screen.SetResolution方法就可以设置屏幕分辨率,这里我尝试把屏幕分辨率缩小为原来的0.5:

        int width = (int)(Screen.currentResolution.width * 0.5f);
        int height = (int)(Screen.currentResolution.height * 0.5f);
        Screen.SetResolution(width, height, true);
打个包在手机上运行,果然可以流畅的以60帧运行。

这里我们可以在游戏启动时做一个判断,在游戏黑屏阶段运行游戏最耗费资源的功能,判断一下帧率,如果低于我们的目标就降低分辨率。

当然这种方法只能用来解决渲染方面造成到游戏卡顿问题,如果是游戏代码逻辑造成的,这种方法应该是无效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值