Unity targetFrameRate 渲染帧率修改

原文地址:https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html

描述:  

     指示游戏尝试以指定的帧率进行渲染(渲染帧率)。

     默认的targetFrameRate是一个特殊值-1,它指示游戏应以平台的默认帧率进行渲染。此默认速率取决于平台:

     - 在独立平台上,默认速率是最大可达到的帧速率。

       - 在移动平台上,由于需要节省电池电量,因此默认帧率小于最大可达到的帧速率。通常在移动平台上,默认帧率为每秒30帧。

  - 所有移动平台都具有针对其最大可达到帧率的修正上线,该上线等于屏幕的刷新率(60Hz=60fps,40Hz = 40fps,...).Screen.currentResolution 包含屏幕的刷新率

  - 此外,所有移动平台只能在VBlank上显示帧。因此,您应该将targetFrameRate设置为-1,或者将其设置为等于屏幕的刷新率,或者将刷新率除以整数。否则,结果帧率始终低于targetFrameRate。注意:如果将targetFrameRate设置为刷新率除以整数,则整数除法将导致与将QualitySettings.vSyncCount设置为该整数相同的值相同的有效fps。

      - IOS会忽略QualitySettings.vSyncCount设置。取而代之的是,设备在帧准备就绪并且应用程序达到targetFrameRate之后,会在第一个可能的VBlank上显示帧。

      - 在WebGL上,默认值使浏览器可以选择帧率以匹配其渲染环定时,这通常会产生最平滑的结果。仅当要限制WebGL上的CPU使用帧率时才建议使用非默认值。

    - 使用VR时,Unity将使用SDK指定目标帧率,并忽略游戏指定的值。

  设置targetFrameRate不能保证将获得帧速率。由于平台的具体情况,可能会有波动,或者游戏可能无法达到的帧速率,因为设备太慢。

       此外如果设置了QualitySettings.vSyncCount属性,则将忽略targetFrameRate,游戏将使用vSyncCount和平台默认渲染速率来确定目标速率。例如如果平台的默认渲染速率为每秒60帧,而vSyncCount设置为2(在Quality Setting 面板中对应的名字是 Every Second V Blank)

  在编辑器中targetFrameRate仅影响游戏视图,对其他编辑器没有影响。

    public void class Example
    {
        public void Start()
        {
            //如果你想自定义渲染帧率,必须将vSyncCount设置为0或者在QualitySetting面板中将V Sync Count 选为Don't Sync
            QualitySettings.vSyncCount = 0;
            Application.targetFrameRate = Screen.currentResolution.refreshRate / 4;
        }
    }

  

原文地址:https://www.cnblogs.com/sy-liu/p/14031787.html