Unity中的帧数

屏幕分辨率越高,帧数越低,因为分辨率低,显示器里的像素就少,显卡和CPU的压力也就小,单位时间内就可以计算更多的东西

一:什么是帧数

帧数就是在1秒钟时间里传输图片的数量,通常用FPS(Frames Per Second)表示
每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象,高的帧率可以得到更流畅、更逼真的动画,所以每秒钟帧数越多,画面也会更加流畅
在PC端,FPS越高越好,FPS越高游戏越流畅,当然太高也没有必要。不过在手机平台上,游戏帧数跑高了,CPU和GPU负荷相应则会增大导致发热。一般帧数为60帧就足够稳定了


二:Unity中的锁帧

Unity中提供了锁帧的方法:

Application.targetFrameRate = 60;

三:获取帧数

注意Application.targetFrameRate获取到的是你设置的帧数,而不是真实的帧数,想要获取到真实的帧数需要自己计算:FPS=一段时间内的帧数/时间

using System.Text;
using UnityEngine;

/// <summary>
/// FPS工具(OnGUI绘制)
/// </summary>
public class FPS_Tool : MonoBehaviour
{
    
### Unity 中 GFXDeviceVK 低率解决方案 针对在 Unity 使用 `GFXDeviceVK` (Vulkan API) 出现的低率问题,可以从多个方面进行优化: #### Vulkan 渲染路径特性调整 当使用 Vulkan 渲染管线时,确保启用了适合目标平台的最佳实践设置。对于移动设备或低端硬件,减少阴影贴图分辨率和复杂度能够有效提升渲染效率[^1]。 #### 动态质量切换机制实现 为了适应不同档次的设备,在高中低三档机型上玩游戏时应分别加载对应层次的特效包。这种做法不仅降低了 CPU 和内存的压力,还提高了整体流畅度。具体来说,可以通过 Quality Settings 或自定义脚本来动态调整材质细节、光照效果以及粒子系统的密度等参数。 ```csharp // C# 示例:基于当前设备性能自动调节画质设定 void AdjustGraphicsQuality() { string deviceModel = SystemInfo.deviceModel; if(IsLowEndDevice(deviceModel)) QualitySettings.SetQualityLevel(0); // 设置最低级别 else if(IsMidRangeDevice(deviceModel)) QualitySettings.SetQualityLevel(2); else QualitySettings.SetQualityLevel(4); // 高端配置启用最高品质 } ``` #### 替换高成本插件与组件 如果检测到某些第三方库占用过多资源,则考虑替换为更高效的替代品。例如,原本使用的 Wwise 音频中间件消耗了约 30% 的 CPU 时间,改用 Unity 自带的声音引擎后显著改善了表现情况。 #### 内存管理策略改进 合理规划并及时回收不再需要的对象实例可以帮助维持较低水平的工作集大小,从而避免因频繁分配/释放而导致的碎片化现象影响垃圾收集器工作效率。特别是对于拥有众多子系统的较大规模项目而言尤为重要[^2]。 通过上述措施综合应用,应该可以在很大程度上缓解乃至彻底解决由于采用 `GFXDeviceVK` 所带来的帧数下降难题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Bug.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值