这篇文章转载自社区资深开发者 Pengju,探索了使用团结引擎开发 OpenHarmony 应用时,显示实时帧率及设置高帧率的方法。
经过定位解决了该问题,将引擎游戏提高到了 60fps,过程中用到了一些好的方法,将经验总结分享给大家。
界面显示实时帧率的方法
从后台抓 trace 统计帧率的方式,不是很方便,费时费力,通过如下简单 3 步,即可在游戏界面上直观看到实时帧率。
1、新建 C# 源码文件 FPSGUI.cs,内容如下:
using UnityEngine;
using System.Collections;
/// <summary>
/// ONGUI帧显示
/// </summary>
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()))
{
}
}
}
3、拖动 FPSGUI 到 MainCamera 上,如下图所示:
这样就修改完了,导出 OpenHarmony 工程,在 DevEco Studio 打包签名,安装应用到开发者手机上,就可以在游戏画面左上角实时看到帧率。
设置高帧率的方法
在代码中设置帧率的方法如下,找一个模块,比如 Player,在它的 start 函数中设置 Application.targetFrameRate 就可以改变帧率,类似如下代码:
void Start()
{
Application.targetFrameRate = 60;
}
我工程中修改后的代码如下:
重新导出 OpenHarmony 工程安装后,游戏应用就有 60fps 了。
了解团结引擎最新进展、分享开发心得、官方团队答疑,请关注团结引擎官方开发者社区专区:https://developer.unity.cn/plate/tuanjie-engine
长按关注
第一时间了解 Unity 社区动向,学习开发技巧
点击“阅读原文”,访问 Pengju 的 CSDN 主页