美文网首页
2021-12-14【c#】环形数组存储

2021-12-14【c#】环形数组存储

作者: 持刀的要迟到了 | 来源:发表于2021-12-14 11:30 被阅读0次

用途:计算网络帧数据的fps

 private bool serverFpsDataInited = false;
    private const int c_ServerFpsFrmcount = 50; //记录n帧后开始使用这个帧率,否则使用预期的帧率
    private const float c_OneDivServerFpsFrmcount = 1f / c_ServerFpsFrmcount; //记录20帧后开始使用这个帧率,否则使用预期的帧率
    private readonly static float[] c_ServerFpsFrmTimes = new float[c_ServerFpsFrmcount];   // 环形计时队列,计算server fps
    private int m_ServerFpsTimePointer = 0;
    [SerializeField] private float serverRecvTimeReal;   // 真实的平均帧速率

    /// <summary>
    /// 计算接收帧速率,该速率为本地认可的服务器真实平均帧速率
    /// </summary>
    private void CalculateServerRecvFps()
    {
        c_ServerFpsFrmTimes[m_ServerFpsTimePointer] = Time.time;
        //Debug.LogError(">> " + m_ServerFpsTimePointer + " " + c_ServerFpsFrmTimes[m_ServerFpsTimePointer]);

        m_ServerFpsTimePointer++;
        if (m_ServerFpsTimePointer == c_ServerFpsFrmcount)
        {
            m_ServerFpsTimePointer = 0;
        }

        if (serverFpsDataInited)
        {
            serverRecvTimeReal = (Time.time - c_ServerFpsFrmTimes[m_ServerFpsTimePointer]) * c_OneDivServerFpsFrmcount;
            //Debug.LogError(m_ServerFpsTimePointer + " " + c_ServerFpsFrmTimes[m_ServerFpsTimePointer]);
        }
        else
        {
            if (m_ServerFpsTimePointer == 0) serverFpsDataInited = true;
            serverRecvTimeReal = ServerSimulateTimeExpect;  // 没初始化好
        }
    }

相关文章

网友评论

      本文标题:2021-12-14【c#】环形数组存储

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