OpenHarmony团结引擎游戏检测和设置高帧率的方法 |
您所在的位置:网站首页 › 壁纸引擎打开文件帧率低 › OpenHarmony团结引擎游戏检测和设置高帧率的方法 |
开发好团结引擎的游戏后,安装到开发者手机上,可以正常使用,但流畅度不高。 后台抓trace分析,帧率仅30fps,定位发现引擎应用默认34ms左右才送1帧给系统,也就是引擎应用自渲染时固定成了30fps。 经过定位解决了该问题,将引擎游戏提高到了60fps,过程中用到了一些好的方法,将经验总结分享给大家。 1 界面显示实时帧率的方法 从后台抓trace统计帧率的方式,不是很方便,费时费力,通过如下简单3步,即可游戏界面上直观得看到实时帧率。 1、新建C#源码文件FPSGUI.cs,内容如下。 using UnityEngine; using System.Collections; /// /// ONGUI帧显示 /// public class FPSGUI : MonoBehaviour { public bool IsShow = true; private float currentTime = 0; private float lateTime = 0; private float framesNum = 0; private float fpsTime = 0; // Update is called once per framevoid Update private void Update() { if (IsShow) { currentTime += Time.deltaTime; framesNum++; if (currentTime - lateTime >= 1.0f) { fpsTime = framesNum / (currentTime - lateTime); lateTime = currentTime; framesNum = 0; } } } void OnGUI() { if (GUI.Button(new Rect(50, 50, 150, 60), "FPS : " + fpsTime.ToString())) { } } }2、在Assets新建Scripts目录,将FPSGUI.cs放置在该目录下,如下图所示: 3、拖动FPSGUI到MainCamera上,如下图所示: 这样就修改完了,导出OpenHarmony工程,在DevEco Studio打包签名,安装应用到开发者手机上,就可以在游戏画面左上角实时看到帧率。
经验证,界面显示的帧率与后台测试的帧率基本一致。 2 设置高帧率的方法默认的应用只有30fps,怎么提高到60fps呢。 在团结引擎Editor中,VSYNC的默认配置已经是Every V Blank了,也就是60fps,但这个设置没有生效,需要用另外的方法设置帧率。 在代码中设置帧率的方法如下,找一个模块,比如Player,在它的start函数中设置Application.targetFrameRate就可以改变帧率,类似如下代码: void Start() { Application.targetFrameRate = 60; }我工程中修改后的代码如下: 重新导出OpenHarmony工程安装后,游戏应用就有60fps了。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |