"현명하지 못한 사람은 자기가 이해할 수 없는 일에 대해서는 무엇이든 헐뜯는다." – Francois de La Rochefoucauld

2015/04/08

targetFrameRate

뭐 대단한 내용은 아니고요. 4 버전까지만 해도 vsync 꺼진 상태에서 Application.targetFrameRate 여기에 -1을 넣으면 기기에서 가능한 최고 프레임으로 렌더링이 됐었는데 이게 5 버전 올리고 나서는 버그인 건지 이전 무료 버전하고는 기능이 다른 건지 뭔지 30으로 고정이 되네요. 5 버전으로 올리고 한참 있다가 기기에서 돌려보고 뭔가 느려서 어디 병목 있는가 했는데 저게 문제였네요. 60이나 원하는 프레임으로 지정하면 잘 됩니다. 다른 엔진도 그런지 모르겠는데 유니티는 버전 앞자리 바뀔 때마다 뭔가 잘 되던 것도 안되고 가끔 으앙 할 때가 좀 많아서 으아아아앙;

+ 2016.12.16 – 레퍼런스를 보니 기본값이 바뀌었나 보네요. 오역이 있을 수 있습니다 ;ㅁ;


원문

https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html

Application.targetFrameRate

public static int targetFrameRate;

설명

게임을 특정 프레임률로 그리게끔 지시합니다.

targetFrameRate의 기본값은 특수 값인 -1입니다. 이는 기본 프레임률로 그리게 됩니다. 기본 프레임률은 플랫폼에 따라 달라질 수 있습니다. 독립형 플랫폼(standalone)의 기본 프레임률은 도달 가능한 최대치(무제한)입니다. 휴대 플랫폼의 기본 프레임률은 전력 절약 때문에 도달 가능한 최대치보다 작습니다. 일반적으로 휴대 플랫폼의 기본 프레임률은 30FPS입니다. WebGL에서 기본값은 어떤 값이 가장 부드러운 결과를 낼지 렌더링 루프 시간에 맞춰 브라우저가 고르게 합니다. WebGL에서는 CPU 사용량을 조절하고 싶을 때만 비 기본값 사용을 추천합니다.

targetFrameRate값을 지정해도 프레임률을 보장받지 못한다는 것을 알아두십시오. 애플리케이션이 계산하는 데 너무 많은 힘을 쏟고 있어 지정한 프레임률에 도달하지 못해 특정 플랫폼이나 게임에 따라서는 프레임에 변동이 있을 수 있습니다.

품질 설정에서 수직 동기가 설정되어 있다면, 지정 프레임률은 무시되며 대신 수직 공백 간격 시간(vblank interval)을 사용합니다. 수직 공백 수 값(vBlankCount)인 QualitySettings.vSyncCount는 화면 갱신율의 절반으로 프레임률을 제한할 때 사용할 수 있습니다. (vBlankCount값을 2로 지정해 60FPS 화면을 30FPS로 제한할 수 있습니다).

편집기에서는 게임 창만 targetFrameRate의 영향을 받습니다. 다른 편집 창은 아무 영향이 없습니다.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Awake() {
        Application.targetFrameRate = 200;
    }
}

댓글 남기기 | cat > 타닥타닥 | tag > ,

댓글 남기기

* 표시된 곳은 반드시 입력해주세요