美文网首页
Unity帧率测试

Unity帧率测试

作者: GameObjectLgy | 来源:发表于2020-11-02 23:18 被阅读0次
    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    // 帧数计算器,需要UGUI来显示,其实可以通过写在OnGUI中显示
    [RequireComponent(typeof(Text))]
    public class FPSCounter : MonoBehaviour
    {
        const float fpsMeasurePeriod = 0.5f;    //FPS测量间隔
        private int m_FpsAccumulator = 0;   //帧数累计的数量
        private float m_FpsNextPeriod = 0;  //FPS下一段的间隔
        private int m_CurrentFps;   //当前的帧率
        const string display = "{0} FPS";   //显示的文字
        private Text m_Text;    //UGUI中Text组件
    
        private void Start()
        {
            m_FpsNextPeriod = Time.realtimeSinceStartup + fpsMeasurePeriod; //Time.realtimeSinceStartup获取游戏开始到当前的时间,增加一个测量间隔,计算出下一次帧率计算是要在什么时候
            m_Text = GetComponent<Text>();
    
            //设置Text位置方法一
            RectTransform rt = m_Text.GetComponent<RectTransform>();
            rt.sizeDelta = new Vector2(200, 300);
            rt.transform.position = new Vector2(100, 100);
            rt.transform.Rotate(new Vector3(0, 0, 45));
    
            //设置Text位置方法二:直接将脚本给场景中的Text组件, 场景中调整组将的位置
        }
    
    
        private void Update()
        {
            // 测量每一秒的平均帧率
            m_FpsAccumulator++;
            if (Time.realtimeSinceStartup > m_FpsNextPeriod)    //当前时间超过了下一次的计算时间
            {
                m_CurrentFps = (int)(m_FpsAccumulator / fpsMeasurePeriod);   //计算
                m_FpsAccumulator = 0;   //计数器归零
                m_FpsNextPeriod += fpsMeasurePeriod;    //在增加下一次的间隔
                m_Text.text = string.Format(display, m_CurrentFps); //处理一下文字显示
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Unity帧率测试

          本文链接:https://www.haomeiwen.com/subject/abclvktx.html