2021년 7월 최신화를 기준으로 작성했습니다.
유니티 공식에서 언급한 UI 관련 최적화 팁입니다.
1. Canvas 내의 UI가 많아지면 분할하자
요소가 변경될 때마다 Canvas를 최적으로 렌더링 하기 위해서 다시 한번 계산에 들어간다
따라서 요소가 많아지면 Canvas를 분할하여 관리하라
2. Raycast Target 를 사용하지 않아도 된다면 비활성화 시키자
Graphic Raycaster가 상호작용이 가능하며 Raycast Target이 활성화 되어있는 UI들을
매프레임마다 이벤트가 발생하는지 매번 검사한다
따라서 사용하지 않아도 된다면 해당 옵션은 꺼두자
*상호작용이 가능한지는 Graphic Raycaster가 판단하기 때문에
또한 필요하지 않다면 삭제하는게 좋다.
3. 많은 리스트를 표현하는 Grid는 되도록 사용하지 말자
무한스크롤급에 가까운 리스트를 표시하거나 혹은 많은 수의 리스트를 표시할 땐
Grid를 사용하면 비용이 크기때문에
리스트를 재사용하며 사용할 수 있게하거나
다른 컴포넌트를 사용하는게 좋다.
4. 오브젝트 풀링은 할거면 제대로 하자
오브젝트를 부모로 변경 - 오브젝트 비활성화 의 순서가 아닌
오브젝트 비활성화 - 오브젝트의 부모 변경로 변경하자
5. Animator 최적화
애니메이터는 값이 변경되지 않더라도 매 프레임마다 작동한다
동적으로 변경되는 애니메이터가 아니라면 Tween 시스템을 사용하자
6. 전체화면 UI를 사용할 때 보이지 않는 오브젝트는 비활성화하자
전체화면을 표시하는 경우 보여지지 않는 부분들도 계속하여 렌더링되고 있다
다른 Canvas도 보이지 않는다면 비활성화하여 성능을 최적화 할 수 있다
*전체화면 UI에서 60프레임을 필요로 하지 않는다면 Application.targetFrameRate를 낮추는 것도 좋다
위 정보는 Unity UI 최적화 팁 에서 원문으로 볼 수 있습니다.
'프로그래밍 > Unity3D' 카테고리의 다른 글
Unity - 가비지 컬렉터 (Garbage Collector) (1) | 2023.10.24 |
---|---|
Unity IL2CPP 는 무엇인가? (0) | 2023.04.15 |
Rider를 소개합니다 (0) | 2022.08.21 |
Unity Cache Server (유니티 캐시서버) (0) | 2021.12.24 |
유니티 로그 콜백 (LogCallback) (0) | 2020.06.03 |