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;
        }
    }

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM