Unity Runtime UI 성능 최적화 가이드
이 문서는 Unity Runtime UI의 성능을 향상시키기 위한 방법에 대해 설명합니다. Unity의 UI 툴킷을 통해 다양한 요소를 효율적으로 관리하고 최적화하는 방법을 다룹니다.
데이터 스토리지 최적화
런타임 중 UI 요소의 사용 방법을 설정하면 데이터 스토리지를 최적화할 수 있습니다.
예시:
visualElement.usageHints = UsageHints.DynamicTransform;
요소별 프로퍼티 사용 예시
요소 유형 | 사용 프로퍼티 | 예시 |
---|---|---|
자주 위치나 변형이 변경되는 요소 | UsageHints.DynamicTransform | style.left , style.top 또는 style.position 을 변경할 때 적용 |
다수의 DynamicTransform 자식 요소 | UsageHints.GroupTransform | ShaderGraph의 각 노드에서 사용, 뷰 컨테이너에 적용 |
애니메이션되는 내장 스타일 색상 | UsageHints.DynamicColor | style.backgroundColor , style.borderLeftColor 변경 시 적용 |
기기 기능 고려 사항
일부 Android 기기와 WebGL은 인덱스 버퍼를 부분적으로 패치할 수 없습니다. 이러한 기기를 사용할 경우 UI 툴킷 렌더링이 작동하더라도 성능 저하가 발생할 수 있습니다.
성능 저하 방지 팁: - 동시에 너무 많은 요소를 애니메이션화하지 않기 - 기기에서 프로파일링 진행하기
메시 테셀레이션 방지
시각적 요소에 대한 메시 테셀레이션을 구축하는 것은 계산적으로 비용이 많이 듭니다. 요소의 크기 변경 시 지오메트리가 다시 빌드되므로 애니메이션이나 잦은 크기 조정에 문제가 생길 수 있습니다.
성능 향상 방법
- 너비 또는 다른 레이아웃 속성 대신 트랜스폼 사용
- 둥근 모서리 또는 테두리 대신 텍스처나 2D 스프라이트 사용
동적 아틀라스를 통한 텍스처 관리
텍스처 변경으로 인한 비효율성을 줄이기 위해 아틀라스를 사용하여 동시에 사용되는 텍스처를 그룹화합니다.
- 스프라이트 아틀라스 사용: 수동으로 아틀라스를 생성해야 하지만 더 좋은 제어가 가능합니다.
- 동적 아틀라스 사용: UI 툴킷은 시각적 요소가 텍스처를 참조할 때 동적 아틀라스에 이를 자동으로 추가하거나 제거합니다.
텍스처 확인
동적 아틀라스를 사용하여 텍스처를 그룹화하고 드로우 콜 수를 제한할 수 있습니다. 이를 위해 프레임 디버거를 사용하여 텍스처 변경을 관찰합니다.
예시: Dynamic Atlas 창에는 런타임 UI의 모든 텍스처가 포함됩니다.
빌트인 필터 적용
동적 아틀라스 텍스처는 지정된 최소 크기에서 시작하여 필요에 따라 최대 크기까지 세로 또는 가로를 두 배로 늘립니다. Panel Settings 자산에서 최소 및 최대 아틀라스 크기를 정의할 수 있습니다.
커스텀 필터 사용
커스텀 필터를 PanelSettings.dynamicAtlasSettings.customFilter
에 할당하여 전역 또는 텍스처별로 제약 조건을 추가하거나 완화할 수 있습니다.
예시 코드:
using UnityEngine;
using UnityEngine.UIElements;
class MyCustomFilter : MonoBehaviour
{
public PanelSettings panelSettings;
public Texture2D largeTexture;
void OnEnable() { panelSettings.dynamicAtlasSettings.customFilter = Filter; }
void OnDisable() { panelSettings.dynamicAtlasSettings.customFilter = null; }
bool Filter(Texture2D texture, ref DynamicAtlasFilters filtersToApply)
{
if (texture == largeTexture)
{
filtersToApply &= ~DynamicAtlasFilters.Size;
}
return true;
}
}
추가 리소스
Copyright © 2022 Unity Technologies. Publication 2022.3