[Unity] 최적화 방법

Unity 2023. 8. 16. 10:30
728x90

최적화 : 성능 향상과 메모리 사용량 감소를 목표

 

1.오브젝트 병합 및 배지

- 정적인 오브젝트는 병합하여 배치한다. 이는 Drow Call을 줄여 성능을 향상시킨다

- 배치 처리를 위해 유니티의 static Batching, Dynamic Batching, GPY Instancing 등을 활용한다

2. 로드 레벨 옵티마이제이션

- 각 레벨 또는 씬에서 필요한 리소스만 로드한다

- 레벨 내 불필요한 오브젝트는 비활성화하거나 숨기는 등의 처리를 한다

3. 텍스처 압축과 해상도 조절

- 텍스처를 압축하여 메모리 사용량을 줄이고 GPU 부담을 경감시킨다

- 모바일이나 낮은 사양 기기에서는 텍스처 해상도를 조절하여 성능을 개선한다

4. LOD(Level of Detail)

- 오브젝트의 먼거리에서는 간단한 모델을 사용하고 가까운 거리에서는 상세한 모델을 사용하는 LOD 시스템을 구현한다

5. 쉐이더 최적화

- 복잡한 쉐이더를 단순화하거나 필요한 기능만 활용하여 쉐이더를 최적화 한다

- GPU에 부담을 주는 계산을 최소화 하고 사용하지 않는 특성은 제거한다

6. 메모리 관리

- 사용하지 않는 리소스를 정기적으로 해제하여 메모리 누수를 방지한다

- 큰 데이터나 리소스는 필요한 경우에만 로드하고 언로드한다

7. 애니메이션 최적화

- 복잡한 애니메이션은 불필요한 뼈를 제거하거나 애니메이션 클립을 결합하여 최적화 한다

- 스킵가능한 애니메이션은 시간이 지난 후에만 업데이트 되도록 한다

8. 불필요한 스크립트 제거

- 사용하지 않는 스크립트를 게임 오브젝트에서 제거한다

- 스크립트의 Update() 함수와 같은 불필요한 호출을 피한다

9. 프로파일링과 테스팅

- 유니티의 프로파일러를 사용하어 성능 병목 현상을 식별하고 개선한다

- 다양한 기기에서 게임을 테스트하여 성능을 확인한다

10. 빌드 설정과 플랫폼 최적화

- 빌드 설정을 통해 불필요한 리소스를 제외하고 최적화 합니다

- 각 플랫폼에 맞는 최적화 방법을 적용하여 성능을 향상시킨다

728x90
Posted by 바르마스
,