OpenHarmony团结引擎游戏检测和设置高帧率的方法

本文介绍了如何在团结引擎游戏中解决帧率问题,通过监控界面显示帧率并设置Application.targetFrameRate将帧率从30fps提升到60fps的过程。开发者可以使用FPSGUI类实时查看游戏帧数并进行优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

开发好团结引擎的游戏后,安装到开发者手机上,可以正常使用,但流畅度不高。

后台抓trace分析,帧率仅30fps,定位发现引擎应用默认34ms左右才送1帧给系统,也就是引擎应用自渲染时固定成了30fps。

经过定位解决了该问题,将引擎游戏提高到了60fps,过程中用到了一些好的方法,将经验总结分享给大家。

 

1 界面显示实时帧率的方法

从后台抓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()))
        { 
        }
        
    }
}

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了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值