Unity...?

Unity) UI - Canvas분리

skennetho 2022. 8. 21. 16:28

이 페이지는 아래 글을 읽어보며 번역한 글입니다.
Unity UI optimization tips

캔버스를 분리하자.

문제: UI캔버스에서 단순한 변경이 생겨도 전체캔버스를 더럽힐 수 있다.

Canvas는 Unity의 UI에서 기초적인 컴포넌트이다.

Canvas는 DrawCall을 GPU에게 요청하여 화면에 그려지게 된다.

이 과정에서 Batch Generation이라는 것을 통해 그릴것,안그릴것을 확인하고 그리는단계를 최적화하는데 이는성능비용이 꽤나 비싸다.

단순한 변경이 생겨도 최적화를 위해 그릴대상들을 분석하는 과정이 생기면 최적화를 위해 비싼 batch generation을 해야한다.

대부분의 사용자는 Canvas하나에 엄청나게 많은 요소들을 때려박아서 사용한다. 이때 사소하더라도 변경사항이 생긴다면 CPU에 과부하가 갈수도 있다. 이 과정을 Rebuilding이란 용어를 사용하여 설명했는데 더 자세한 설명을 원한다면 여기.

해결법 : 캔버스를 분리.

각 캔버스는 다른 캔버스의 요소와 격리된 섬입니다.Unity UI에서 발생하는 배치 문제를 해결하기 위해 캔버스를 슬라이스하여 여러 캔버스를 지원하는 UGUI의 기능을 활용하십시오.

또한 설계자가 캔버스 전체에서 화면 상의 다른 요소가 어디에 있는지 생각하지 않고도 대규모 계층 UI를 만들 수 있도록 캔버스를 중첩할 수도 있습니다.또한 하위 캔버스는 콘텐츠를 상위 캔버스와 형제 캔버스에서 모두 분리합니다.자체 지오메트리를 유지하고 자체 배치를 수행합니다.분할 방법을 결정하는 한 가지 방법은 새로 고침 빈도에 따라 결정됩니다.정적 UI 요소는 별도의 캔버스에 보관하고 동적 요소는 더 작은 하위 캔버스에서 동시에 업데이트합니다.또한 각 캔버스에 있는 모든 UI 요소의 Z 값, 재료 및 질감이 동일한지 확인하십시오.