Unity 최적화 매뉴얼 (2022.3 LTS)

개요

Unity에서 작업할 때 발생할 수 있는 성능 저하 문제를 방지하기 위한 여러 가지 팁과 기법을 안내합니다. 특히, 에셋을 효과적으로 관리하고 최적화하는 방법에 대해 설명하겠습니다.

1. 에셋 검사

실제 프로젝트에서 발생하는 문제는 대개 개발자의 임시 오류에서 비롯됩니다. 예를 들어, 압축되지 않은 4K 텍스처가 프로젝트에 추가될 경우, 모바일 디바이스에서 심각한 메모리 부족 문제를 일으킬 수 있습니다. 이러한 문제를 사전에 방지하는 것이 중요합니다.

2. AssetPostprocessor 사용

Unity에서는 AssetPostprocessor 클래스를 통해 에셋 가져오는 과정에서 여러 가지 규칙을 적용할 수 있습니다. 이 클래스를 사용하면, 에셋 임포트 전후에 특정 작업을 수행할 수 있습니다.

예제 코드

public class ReadOnlyModelPostprocessor : AssetPostprocessor {
    public void OnPreprocessModel() {
        ModelImporter modelImporter = (ModelImporter)assetImporter;
        if (modelImporter.isReadable) {
            modelImporter.isReadable = false;
            modelImporter.SaveAndReimport();
        }
    }
}

주요 활용 포인트

  • 각종 OnPreprocess 메서드를 활용하여 규칙 적용 가능
  • 이를 통해 오류 방지 및 자동화된 에셋 관리 가능

3. 일반적인 에셋 최적화 규칙

에셋 종류 최적화 방법
텍스처 Read/Write enabled 플래그 비활성화
가능한 경우 밉맵 비활성화
모든 텍스처 압축
적절한 텍스처 크기 제한 적용
모델 Read/Write enabled 플래그 비활성화
캐릭터 모델에서 리그 비활성화
메시 압축 사용
오디오 플랫폼에 적합한 압축 설정
오디오 클립을 모노로 설정
비트레이트 축소

4. 각 최적화 항목에 대한 설명

텍스처 최적화

  • Read/Write enabled 플래그 비활성화: 텍스처가 두 번 메모리에 저장되므로, 비활성화하여 메모리 사용량 감소.
  • 밉맵 비활성화: Z 뎁스가 상대적으로 변하지 않는 오브젝트에서 사용 시 메모리 절약 가능.
  • 모든 텍스처 압축: 타겟 플랫폼에 적합한 텍스처 압축 포맷을 사용하여 메모리 효율을 높임.

모델 최적화

  • Read/Write enabled 플래그 비활성화: 불필요한 메모리 소비를 줄이기 위해 모델의 플래그 비활성화.
  • 리그 비활성화: 애니메이션화되지 않는 모델에서 리뷰나 불필요한 부하 방지.
  • 메시 압축 사용: 데이터 용량을 줄이고 성능 향상.

오디오 최적화

  • 모노 설정: 대부분의 모바일 디바이스는 스테레오 지원이 제한적이므로, 모노로 설정하여 메모리 사용량 절감.
  • 비트레이트 최소화: 오디오 파일의 비트레이트를 줄임으로써 메모리 소비 및 빌드 크기 감소.

결론

Unity에서 성능 최적화는 프로젝트의 성공에 큰 영향을 미칩니다. 위의 규칙들을 따르고, 에셋 관리 규칙을 자동화함으로써 더욱 효율적인 게임 개발이 가능합니다. 이 문서에서 제공하는 팁을 참조하여 성능을 향상시키기 위한 노력을 기울이시기 바랍니다.

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA