Unity 검색

다루는 주제
공유

Is this article helpful for you?

Thank you for your feedback!

Unity 2020.1 베타 버전에서 업데이트된 BuildReport API는 프로젝트 빌드 시간에 관한 정보를 에셋별로 상세히 제공합니다. 이 정보를 바탕으로 반복 작업 시간을 최적화할 수 있습니다.

BuildOptions.DetailedBuildReport 매뉴얼 페이지에서 새로운 API의 사용법을 직접 확인해 보세요. Build Report Inspector를 프로젝트에 활용하면 새 빌드 보고서를 손쉽게 확인할 수 있습니다.

프로젝트에 포함된 콘텐츠가 많으면 빌드 시간이 꽤 길어질 수 있습니다. 특히 여러 플랫폼에 대한 테스트를 진행할 때 반복 작업이 더뎌집니다.

Unity 2018.1에서 Unity 빌드 프로세스에 대한 정보를 제공하는 BuildReport API가 도입되었습니다. BuildPipeline.BuildPlayer에서 반환된 BuildReport 오브젝트는 빌드 프로세스 중에 발생하는 단계와 빌드 크기에 영향을 미치는 에셋, 그리고 빌드에 포함된 엔진 모듈에 대한 정보를 포함합니다.

Unity 2020.1에서는 API 함수 BuildPipeline.BuildPlayer에 새로운 BuildOptions.DetailedBuildReport 옵션을 전달하면 BuildReport 오브젝트에서 보다 자세한 빌드 단계 및 빌드에서 에셋을 사용하는 씬에 대한 요약 정보와 같은 다양한 내용을 확인할 수 있습니다.

Build Report Inspector 패키지

BuildReport API를 사용하면 프로젝트 빌드 시간을 분석하는 커스텀 툴을 작성할 수 있습니다.

Unity에서 제공하는 Build Report Inspector에서 사용법을 참고하세요.

Unity 패키지 관리자 창에서 Build Report Inspector를 프로젝트에 추가할 수 있습니다. Advanced 메뉴에서 Show Preview Packages를 선택하고 목록에서 Build Report Inspector를 찾아 'Install' 버튼을 클릭합니다.

패키지 관리자의 Build Report Inspector또한 GitHub 저장소에서 Build Report Inspector 스크립트(향후 실험 버전 포함)를 가져올 수 있으며 기능 개선에 도움을 줄 수도 있습니다.

Build Report Inspector는 Window 메뉴에 Open Last Build Report 커맨드 메뉴를 추가합니다. Open Last Build Report 커맨드 메뉴를 클릭하면 프로젝트에 마지막 빌드 중 생성된 빌드 보고서 파일이 복사되고, 해당 파일이 선택되어 콘텐츠가 인스펙터에 표시됩니다.

보트 어택(Boat Attack) 프로젝트의 증분 빌드에 대한 간단한 빌드 보고서

BuildReport.steps의 추가 세부 정보

BuildOptions.DetailedBuildReport 옵션을 사용하여 빌드할 때 새로운 빌드 단계가 BuildReport.steps에 나열됩니다.

노이즈를 줄이기 위해 1ms보다 짧은 빌드 단계는 표시되지 않습니다.

새롭게 보고되는 단계는 다음과 같습니다.

  • 빌드 시 에셋 로드 및 쓰기 시간
  • 빌드 진행 중 가비지 컬렉션 시간
  • 에셋 종속성 처리 시간
  • 커스텀 에셋 번들 빌드의 세부 사항 및 소요 시간

BuildOptions.DetailedBuildReport 매뉴얼 페이지에서 해당 옵션의 사용법을 보여주는 에디터 스크립트 예제를 참고하세요.

BuildOptions.DetailedBuildReport 플래그를 사용하여 예제를 수정하면 보트 어택 프로젝트를 다음과 같이 빌드할 수 있습니다.

using UnityEditor;
using UnityEngine;

public class DetailedBuildReportExample : MonoBehaviour
{
    [MenuItem("Build/DetailedBuildReport example")]
    public static void MyBuild()
    {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.scenes = new[] { "Assets/scenes/MainMenu.unity", "Assets/scenes/_levels/level_Island.unity" };
        buildPlayerOptions.locationPathName = "DetailedReportBuild/MyGame.exe";
        buildPlayerOptions.target = BuildTarget.StandaloneWindows64;

        buildPlayerOptions.options = BuildOptions.DetailedBuildReport;

        var buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);
    }
}

위의 스크립트를 보트 어택 프로젝트의 Assets/Editor 폴더에 추가하고 에디터 메뉴 Build/DetailedBuildReport example을 클릭하면 프로젝트 빌드가 시작됩니다. 빌드가 끝나면 추가 데이터가 빌드 보고서에 포함됩니다.

이제 위에서 설명한 대로 Window/Open Last Build Report 커맨드를 사용하면 다음과 같이 보고서에 추가 단계가 포함됩니다.

보트 어택 프로젝트의 증분 빌드에 대한 상세 빌드 보고서추가 정보를 참고하면 프로젝트를 빌드할 때 시간이 더 많이 소요되는 단계와 에셋을 파악할 수 있습니다.

이러한 에셋을 파악한 후에는 더 가벼운 '개발용' 버전으로 교체하여 반복 작업 시간을 단축할 수 있습니다.

특정 에셋을 사용하는 모든 씬 검색하기

무거운 에셋을 교체하는 과정에서 빌드의 어떤 씬이 특정한 에셋을 포함하는지 정확하게 파악하는 것이 좋습니다.

빌드하는 동안 BuildOptions.DetailedBuildReport 옵션을 사용한 경우 이 정보는 BuildReport에 멤버 BuildReport.markUsingAssets로 노출됩니다.

Build Report Inspector를 프로젝트에 추가한 경우 SceneUsingAssets 탭에서 다음 정보를 검토할 수 있습니다.

보트 어택 프로젝트에서 특정 에셋을 사용하는 씬 목록

개발 중에 무거운 에셋을 더 작은 에셋으로 교체하거나, 해당 에셋을 참조하는 씬을 제외하고 빌드 프로파일을 생성하면 반복 시간을 단축하는 데 도움이 됩니다.

Unity 2020.1 베타 및 웨비나

상세 빌드 보고서를 사용하여 프로젝트 빌드 시간을 차지하는 요소를 확인하고, 해당 정보를 바탕으로 반복 루프를 최적화할 수 있습니다. Unity 2020.1 베타에서 이 기능을 사용해보고 의견을 알려주세요. 태평양 표준시 기준 4월 20일 오전 9시(중앙유럽 표준시 기준 오후 6시)에 진행된 2020.1 베타 웨비나에서 기능 및 업데이트 사항을 안내해 드렸습니다. 2020.1 베타 웨비나에서 진행된 Q&A는 포럼을 확인하세요.

2020년 4월 9일 엔진 & 플랫폼 | 4 분 소요

Is this article helpful for you?

Thank you for your feedback!

다루는 주제