以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/OnDemandRendering_renderFrameIntervalより取得しました。


省電力化や発熱低減させたい時に使える、描画回数だけを減らすOnDemandRendering.renderFrameInterval【Unity】




この記事でのバージョン
Unity 6000.1.11f1


はじめに

Unityでスマホ向けにゲームを作っていると消費電力や発熱が気になることがあります。

今回はそんな時に使える描画回数だけを減らせる

OnDemandRenderingのrenderFrameIntervalという設定の紹介です!


ちなみに似たような設定にApplication.targetFrameRateがありますが、

こちらは描画だけでなく、Updateなどの処理回数も減るため、必要に応じて使い分ける感じになります。





OnDemandRendering.renderFrameInterval

さっそく使い方ですが、OnDemandRendering.renderFrameIntervalに

「何フレームに1回描画するか(描画回数を何分の1にするか)」という値を設定するだけ。

(0か1を設定したらなら通常の状態)

//2フレームに1回描画 = 60FPSなら1秒に30回描画
OnDemandRendering.renderFrameInterval = 2;


もちろん、描画回数を減らせば負荷はグッと減りますが、動きがカクカクになるので、

描画がそんなにいらない場面で下げる、端末によっては下がるみたいな使い方になると思います。


また、実際に今フレームが描画されるか確認にはwillCurrentFrameRender、

描画FPS(=1秒に何回表示されているか)の確認にはeffectiveRenderFrameRateが使えます。

//描画FPSの確認
Debug.Log($"設定前 : effectiveRenderFrameRate {OnDemandRendering.effectiveRenderFrameRate}");
OnDemandRendering.renderFrameInterval = 6;//描画を1/6 = 1秒10に変更
Debug.Log($"設定後 : effectiveRenderFrameRate {OnDemandRendering.effectiveRenderFrameRate}");
private void Update() {
  //描画されたか確認
  Debug.Log($"willCurrentFrameRender {OnDemandRendering.willCurrentFrameRender}");
}






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/OnDemandRendering_renderFrameIntervalより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14