유니티 최적화 타이밍 및 고려해야 할 점
- Target Platform 및 Device를 정확하게 설정해야 한다.
- 프로토타입을 만드는 과정에서는 최적화를 할 것이 아니라 기능 구현에 초점을 맞추어야 한다.
- 프로파일링을 하면서 문제점을 파악한 후, 최적화를 해야 한다.
- 프로파일링과 최적화는 개발 막바지가 아닌 프로덕션 개발 과정 중간중간에 자주 해줘야 한다.
프로파일링
프로파일링이란, 병목탐지와 병목 제거의 순환 과정이다. 리소스들이 몰리는 지점을 탐지하고 이를 제거하는 것이 중요하다. 병목 제거는 추측이 아닌 프로파일링에 의한 근거를 가지고 임해야 한다.
프로파일링 주의 사항
- 추측에 의한 최적화 금지
- 디버거 / 프로파일러 툴의 적극적인 활용
- 유니티 에디터에서의 프로파일링은 단순 참고용
- 타겟 플랫폼에서의 프로파일링은 필수
- 자동화된 테스팅 환경 구축 (ex: 벤치마커)
쓰로틀링(Throttling)
모바일의 경우, 별도의 쿨러가 장착되어 있지 않다. 만약 CPU에 많은 일을 요구하게 되어 기기가 과열된다면 기기 스스로 Clock과 전압에 제어를 걸어 성능을 낮추어 이를 해결한다. 이렇게 Clock에 제어를 걸어 기기의 성능이 저하되는 현상을 쓰로틀링(Throttling)이라고 한다. 그래서 모바일에서 프로파일링을 할 때는 쓰로틀링에 빠지지 않도록 주의하면서 테스트하는 것이 좋다.
targetFrameRate
targetFrameRate란 게임 내에서 프레임을 호출하는 주기를 의미한다. 이는 기기마다 다르게 설정되어 있는 경우가 많다. 만약 이를 지정하여 사용하고 싶다면 아래와 같이 Awake()함수에서 지정할 수 있다.
void Awake() {
Application.targetFrameRate = 40;
}
이를 지정하였다면 지정했다는 사실을 염두에 두고 프로파일링을 진행하여야 한다.
참고: https://www.youtube.com/watch?v=d_0uDfNEOk8
'Unity' 카테고리의 다른 글
[Unity] Unity 최적화 공부(3) (0) | 2021.05.13 |
---|---|
[Unity] Unity 최적화 공부(2) (0) | 2021.05.12 |
[Unity] Resources 파일 내에 있는 Sprite Load하기 (0) | 2021.04.17 |
[Unity] RequireComponent (0) | 2021.04.10 |
[Unity] HP bar 만들기 (0) | 2021.04.06 |