zoukankan      html  css  js  c++  java
  • Unity 显示FPS(C#语言)

    直接上脚本了:

     1 using UnityEngine;
     2 using System.Collections;
     3 
     4 public class ShowFPS : MonoBehaviour {
     5     //设置帧率
     6     Application.targetFrameRate = 10; 
     7     public float f_UpdateInterval = 0.5F;
     8 
     9     private float f_LastInterval;
    10 
    11     private int i_Frames = 0;
    12 
    13     private float f_Fps;
    14 
    15     void Start() 
    16     {
    17         //Application.targetFrameRate=60;
    18 
    19         f_LastInterval = Time.realtimeSinceStartup;
    20 
    21         i_Frames = 0;
    22     }
    23 
    24     void OnGUI() 
    25     {
    26         GUI.Label(new Rect(0, 100, 200, 200), "FPS:" + f_Fps.ToString("f2"));
    27     }
    28 
    29     void Update() 
    30     {
    31         ++i_Frames;
    32 
    33         if (Time.realtimeSinceStartup > f_LastInterval + f_UpdateInterval) 
    34         {
    35             f_Fps = i_Frames / (Time.realtimeSinceStartup - f_LastInterval);
    36 
    37             i_Frames = 0;
    38 
    39             f_LastInterval = Time.realtimeSinceStartup;
    40         }
    41     }
    42 }

     拿一个别人的带注释的:

    以备之后用,

    // 帧数计算器,需要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>();
        }
     
     
        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); //处理一下文字显示
            }
        }
    }
    

      

  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/allyh/p/10258895.html
Copyright © 2011-2022 走看看