Unity 3 D-計算フレームレートFPS

1325 ワード

ネット上にはFPSを計算する方法がたくさんありますが、一般的には100%正確なフレームレートに達していません.実際のフレームレートに近い計算方法しかありません.
以下は、本人が複数の方法をテストした後、実際のフレームレートに近いと思う計算方法です.
public class FPS : MonoBehaviour
    {
        [SerializeField]
        private Text showFPSText;
        private float fpsByDeltatime = 1.5f;
        private float passedTime = 0.0f;
        private int frameCount = 0;
        private float realtimeFPS = 0.0f;
        void Start()
        {
            SetFPS();
        }
        void Update()
        {
            GetFPS();
        }
        private void SetFPS()
        {
            // QualitySettings.vSyncCount , 。
            //  60
            Application.targetFrameRate = 60;
        }
        private void GetFPS()
        {
            if (showFPSText == null) return;

            // FPS
            //float fps = 1.0f / Time.smoothDeltaTime;
            //showFPSText.text = "FPS:  " + fps.ToString();

            // 
            frameCount++;
            passedTime += Time.deltaTime;
            if(passedTime >= fpsByDeltatime)
            {
                realtimeFPS = frameCount / passedTime;
                showFPSText.text = "FPS:  " + realtimeFPS.ToString("f1");
                passedTime = 0.0f;
                frameCount = 0;
            }
        }
    }