Skip to content
Snippets Groups Projects
FPSCounter.cs 1.03 KiB
Newer Older
  • Learn to ignore specific revisions
  • BenniHome's avatar
    BenniHome committed
    using System;
    using UnityEngine;
    using UnityEngine.UI;
    
    namespace UnityStandardAssets.Utility
    {
        [RequireComponent(typeof (Text))]
        public class FPSCounter : MonoBehaviour
        {
            const float fpsMeasurePeriod = 0.5f;
            private int m_FpsAccumulator = 0;
            private float m_FpsNextPeriod = 0;
            private int m_CurrentFps;
            const string display = "{0} FPS";
            private Text m_Text;
    
    
            private void Start()
            {
                m_FpsNextPeriod = Time.realtimeSinceStartup + fpsMeasurePeriod;
                m_Text = GetComponent<Text>();
            }
    
    
            private void Update()
            {
                // measure average frames per second
                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);
                }
            }
        }
    }