최적화 : 성능 향상과 메모리 사용량 감소를 목표
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. 빌드 설정과 플랫폼 최적화
- 빌드 설정을 통해 불필요한 리소스를 제외하고 최적화 합니다
- 각 플랫폼에 맞는 최적화 방법을 적용하여 성능을 향상시킨다
'Unity' 카테고리의 다른 글
PhotonNetwork_Chat (0) | 2023.08.30 |
---|---|
비주얼 스튜디오 코드에서 using Photon.Pun 이 안되는 경우 (0) | 2023.08.29 |
DOTween / Tweener (0) | 2023.08.11 |
CapsuleCollider.direction (0) | 2023.08.09 |
최적화 / 하이라키, 캐싱, Debug, Scriptable Object, Object Pooling (0) | 2023.08.08 |