[펌] NGUI 최적화의 핵심
Unity3D/NGUI / 2017. 10. 11. 13:42
GUI 최적화의 핵심은 정적인 UI 들과 동적인 UI 들을 나누는 것이다. 나누는 기준은 패널이다. 예를 들어 다음과 같은 하이어라키를 생각해볼 수 있다.
Panel1
정적인 UI들
Panel2
동적인 UI들
이렇게 하는 이유는 UI 가 갱신될 때마다 UI 가 속한 패널의 지오매트리가 재구성되기 때문이다. 재구성 작업에 많은 양의 가비지가 발생한다. 여기서 주의해야할 점은 위치 이동같은 기본 변환은 '갱신' 에 포함되지 않는다는 것이다. 지오매트리가 변해야 하는 작업들, 예를 들어 SetActive, UILabel 의 text 변경 등이 갱신에 포함된다.
패널의 UI 들중 하나라도 갱신이 되면 패널의 모든 UI 들에 대한 지오매트리 재구성 작업이 수행된다. 따라서 제일 최악의 시나리오는 패널을 루트에 단 하나 만들어두는 것이다. 이러면 UI 의 변경은 곧 씬의 모든 UI 들의 갱신이라는 결과로 작용한다.
동적인 UI 들 역시 하나의 패널로 몰아넣는건 같은 이유로 피해야 한다. 그렇다고 해서 패널의 개수를 너무 많이 늘려서는 안되는데, 패널 단위로 드로우콜이 분리되기 때문에 렌더링 성능은 낮아진다. 따라서 성능 측정을 결과로 패널의 개수를 조절할 필요가 있다.
출처: http://cacodemon.tistory.com/entry/NGUI-최적화의-핵심 [카코데몬의 잡동사니]
반응형
'Unity3D > NGUI' 카테고리의 다른 글
Useful stuff for NGUI (0) | 2018.06.07 |
---|---|
[NGUI] 스크롤뷰(패널) 맨끝으로 드래그했을때 처리 (0) | 2018.01.11 |
[펌] NGUI의 UILabel에서 개행(\n)이 안되는 문제 (0) | 2017.07.17 |
[펌][NGUI] UI와 일반 오브젝트의 터치 이벤트 처리. (0) | 2017.06.01 |
[펌] Blur filter for UITexture in NGUI (0) | 2017.02.09 |