빌드 플랫폼 전환을 편리하게, Unity 6 빌드 프로필
빌드 프로필은 특정 플랫폼에서 애플리케이션을 빌드하는 데 사용할 수 있는 구성 설정 세트입니다. 사전에 각 플랫폼에 대해 여러 빌드 프로파일을 구축하고 만들고 릴리스 및 개발 빌드를 보다 쉽게 접근하고 실행할 수 있습니다. 본 아티클에서는 빌드 프로필에 어떻게 접근하고 효과적으로 사용하는지 그 방법을 살펴보겠습니다.
빌드 프로필 개요
게임 시장이 지속적으로 성장하면서 각 게임 개발사는 더 많은 사용자를 확보하기 위한 전략을 취하고 있습니다. 전략은 크게 두가지로, 첫번째는 언어 지원 그리고 두번째는 배포 플랫폼입니다. 특히 데스크탑, 모바일, 콘솔, 웹 등 다양한 플랫폼을 타겟으로 하여 릴리스하는 사례가 늘어나고 있습니다.
기존 에디터의 빌드 방식
기존 유니티 에디터에서도 역시 20개 이상의 플랫폼 빌드를 지원하고 있습니다. 하지만 Build Setting에서 다른 플랫폼으로 전환 (Switch Platform)을 하게 되면 공통적인 속성 외엔 다시 설정 작업을 해야 하는 불편함이 있었습니다. 또한 현재 이 프로젝트가 어떠한 빌드를 타겟팅하고 있는지 알기 어려우며 그에 대한 각종 정보들의 가시성이 떨어지기 때문에 빌드 작업에서 휴먼 에러의 위험성도 높을 수 밖에 없습니다.
빌드 프로필의 등장
그래서 이러한 불편함을 해소하기 위해 Unity 6에서 빌드 프로필 (Build Profile) 기능이 추가되었습니다. 간단히 말해서 빌드 프로필은 글로벌 설정을 오버라이드하는 빌드 관련 데이터 컨테이너 에셋입니다. 이러한 에셋 목록이 Build Profile 창(기존 Build Settings)에 나타나기 때문에 현재 에디터 사용자에게 해당 프로젝트의 타겟 플랫폼에 대한 정보를 쉽게 얻을 수 있습니다. 물론 이러한 프로필을 기반한 새로운 워크플로우 외에도 Unity 6 이전 버전의 프로젝트의 호환을 위해서 기존 빌드 워크플로우도 지원합니다. 그럼 어떻게 빌드 프로필 작업을 수행할 수 있는지 아래에서 자세히 설명하겠습니다.
기존 빌드 수행
기본적인 빌드 프로필을 제작하고 활용하는 방법은 간단합니다. 기존 Build Settings가 Build Profiles로 대체되었다는 점이 가장 큰 변화입니다. File > Build Profiles 메뉴를 통해 간단히 Build Profiles 창을 열 수 있고 여기서 기존에서 해왔던 빌드 작업을 그대로 수행할 수 있습니다.
씬 목록 편집
Build Profiles 창에서는 기존과 달리 Scene List를 플랫폼 설정과 별도의 메뉴로 분리하여 UI/UX를 개선되었습니다. 이제 Scene List 항목에서 Scene 목록을 편집해야 하며 이 작업은 모든 플랫폼에 적용 됩니다.
빌드 및 플레이어 설정
이후 Platforms의 여러가지 플랫폼 항목에서 원하는 플랫폼을 선택하고 기존과 동일하게 빌드 설정을 할 수 있습니다. 또한 Build Profiles 창 위쪽에 새롭게 배치된 Player Settings 버튼을 통해 바로 플레이어 설정 창을 열 수 있어 보다 빠르게 설정 작업을 진행할 수 있습니다. 설정을 마쳤다면 Build 버튼으로 빌드를 수행할 수 있습니다. 이러한 방식의 설정은 프로젝트 전역으로 반영됩니다.
빌드 프로필 사용하기
이제부터는 새로운 빌드 프로필 시스템을 활용하여 빌드 작업을 수행토록 하겠습니다. 앞서 언급했지만 빌드 프로필은 ‘전역 설정을 오버라이드하는 빌드 데이터 컨테이너’ 입니다. 빌드 프로필을 사용하는 것은 곧 빌드 데이터 에셋을 생성한다는 의미가 됩니다.
빌드 프로필 생성
먼저 Build Profiles 창의 왼쪽 아래에 배치되어 있는 Add Build Profile 버튼을 클릭합니다.
이후 나타나는 Platform Browser 창에서 타겟 플랫폼을 지정하고 Add Build Profile 버튼을 눌러 빌드 프로필 에셋을 생성합니다.
빌드 프로필 에셋은 Assets/Settings/Build Profiles 경로에 생성되며 에셋 선택 시 인스펙터에서 속성을 편집할 수 있습니다. 또한 Build Profiles 창의 왼쪽 하단에 Build Profiles 목록으로도 동일하게 확인할 수 있습니다. 프로젝트 창에서 에셋의 이름을 변경하면 해당 목록에서도 동일한 이름으로 표시됩니다.
빌드 프로필 설정
빌드 프로필에서 설정하는 속성들은 전역으로 설정된 것들을 오버라이드 합니다. 이것은 Scene List도 마찬가지이며, Override Global Scene List를 체크하면 별도로 빌드에 포함될 씬 목록을 구성할 수 있습니다.
이와 같이 Scripting Defines도 추가적으로 설정하여 각 빌드 프로필마다 고유의 스크립팅 정의를 내릴 수 있습니다. 그 아래에 있는 Platforms Settings 또한 마찬가지 입니다. 특히 개발용 빌드 속성인 Development Build를 지정한 개발용 빌드 프로필도 생성하고 보관할 수 있습니다.
가장 놀라운 점은 가장 아래에 있는 Player Settings Overrides 입니다. Customize player settings 버튼을 눌러 활성화 하면 전역으로 설정된 Player Settings도 별도로 오버라이드 할 수 있게 속성들을 지정할 수 있게 됩니다.
만약 Customize player settings가 필요 없게 되었다면, Player Settings Overrides 항목의 오른쪽에 배치되어 있는 케밥 버튼을 누르고 Remove Overrides 메뉴를 클릭하면 됩니다.
빌드 프로필 활용
개발 및 릴리즈 빌드 프로필을 생성했다면 필요할 때에 Switch Profile 버튼을 통해 전환하고 Build를 수행할 수 있습니다. 현재 활성화된 빌드 프로필은 Build Profiles 창 왼쪽의 목록에 Active 태그가 함께 있음을 확인할 수 있습니다.
이러한 빌드 프로필은 이미 에셋 형태로 보관되어 있으므로 함께 개발하는 팀원 간의 공유도 원활하게 이루어집니다. 인-에디터 형상관리인 Unity Version Control을 사용하거나 git을 활용하여 동일한 빌드 환경을 공유해보세요.
빌드 프로필 API
유니티 에디터를 배치모드로 사용하고 있다면 커맨드라인으로 빌드를 자동으로 수행할 수 있습니다. 아래 링크에서 더 자세히 알아볼 수 있습니다.
스크립트로 배치모드로 전환할 때 문제가 발생할 수 있기 때문에 배치 모드로 에디터를 시작할 때 원활한 빌드 프로필을 활성화 할 수 있도록 커맨드라인을 제공합니다.
"에디터 설치 경로\Editor\Unity.exe"
-activeBuildProfile "Assets\Settings\Build Profiles\대상 빌드 프로필.asset"
-build "output\build.exe"
이와 함께 스크립트에서 BuildPipeline.BuildPlayer에게 빌드 프로필을 제공해주어야 하므로 관련 API도 함께 추가되었습니다. 아래는 빌드 프로필을 사용하여 BuildPlayer를 실행하는 간단한 스크립트 예시 코드입니다.
public class EditorScript
{
[MenuItem("Example/Simple Build")]
public static void SimpleBuild()
{
var buildProfile = AssetDatabase.LoadAssetAtPath<BuildProfile>
("Assets/Settings/Build Profiles/Web Profile.asset");
BuildPlayerWithProfileOptions options = new BuildPlayerWithProfileOptions();
options.buildProfile = buildProfile;
options.locationPathName = "output/build.exe";
options.options = BuildOptions.None;
BuildPipeline.BuildPlayer(options);
}
}
또한 현재 에디터가 빌드 프로필이 활성화되어 있는지 확인하려면 스크립트에서 BuildProfile.GetActiveBuildProfile(); 함수를 활용하시기 바랍니다.
정리
개발하는 게임의 규모와 상관없이, 원활한 개발 및 데모 시연, 정식 릴리즈 등의 다양한 활동을 위해서는 여러 종류의 빌드 버전을 준비해야 합니다. 각각의 빌드 목적에 맞춰 최적화된 설정을 적용해야 불필요한 오류를 방지하고 효율적인 개발 흐름을 유지할 수 있기 때문입니다. 본 아티클에서 소개한 빌드 프로필 기능을 사용하면 여러가지 빌드를 원활하게 설정하고 관리할 수 있으니 앞으로도 Unity 6 에디터를 적극 활용해보시기 바랍니다.