크로스 플랫폼 고려사항
문제 해결(Troubleshooting)

빌드 퍼블리시(Publishing Builds)

게임을 만드는 중에 에디터 외부에서 스탠드얼론으로 빌드 및 실행할 때의 모습을 볼 수 있습니다. 이 섹션에서는 Build Settings 을 사용하는 방법과 게임의 여러 빌드를 생성하는 방법에 대해 설명합니다.

File->Build Settings… 메뉴 항목에서 빌드 설정 창에 액세스할 수 있습니다. 게임을 빌드할 때 포함될 씬에서 편집 가능한 리스트를 팝업 창으로 보여줍니다.

빌드 설정 창
빌드 설정 창

프로젝트에서 이 창을 처음으로 열면 비어 있습니다. 리스트가 비어 있는 상태에서 게임을 빌드하면 현재 열려 있는 씬만 빌드에 포함됩니다. 씬 파일 하나만으로 테스트 플레이어를 신속하게 빌드하려면 씬 리스트가 비어 있는 플레이어를 빌드하면 됩니다.

멀티 씬 빌드용 리스트에 씬 파일을 두 가지 방법으로 쉽게 추가할 수 있습니다. 첫 번째로 Add Open Scenes 버튼을 클릭하면 현재 열려 있는 씬이 리스트에 표시됩니다. 두 번째로 Project View 에서 씬 파일을 리스트로 끌어다 놓아 추가할 수 있습니다.

여기에서 각 씬의 인덱스 값이 다르다는 점을 주목해야 합니다. Scene 0 은 게임을 빌드할 때 로드되는 첫 번째 씬입니다. 새로운 씬을 로드하려면 스크립트 내부에서 Application.LoadLevel()을 사용해야 합니다.

씬 파일을 두 개 이상 추가한 다음 이를 다시 정렬하려면 원하는 순서가 될 때까지 위 또는 아래의 리스트에서 씬을 클릭하여 끌어다 놓으면 됩니다.

리스트에서 씬을 삭제하려면 씬을 클릭하여 강조 표시하고 Command-Delete 를 누르십시오. 리스트에서 씬이 사라지고 빌드에 포함되지 않습니다.

빌드를 퍼블리시할 준비가 되면 Platform 을 선택하고 Unity 로고가 플랫폼 옆에 표시되는지 확인해야 합니다. 없을 경우 Switch Platform 버튼을 클릭하여 Unity로 빌드할 플랫폼을 결정해야 합니다. 마지막으로 Build 버튼을 누르십시오. 표준 저장 다이얼로그를 사용하여 게임의 이름과 위치를 선택할 수 있습니다. Save 를 클릭하는 즉시 Unity가 게임을 빌드합니다. 아주 간단합니다. 빌드한 게임을 어디에 저장해야 할지 모르겠다면 프로젝트의 루트 폴더에 저장할 수도 있습니다. Assets 폴더에는 저장할 수 없습니다.

플레이어에서 Development Build 체크박스를 활성화하면 프로파일러 기능이 활성화되며 자동연결 프로파일러와 스크립트 디버깅 옵션도 활성화됩니다.

빌드 설정 창에 대한 자세한 내용은 빌드 설정 페이지를 참조하십시오.

스탠드얼론 플레이어 빌드

Windows, Mac, Linux에서 Unity로 스탠드얼론 애플리케이션을 빌드할 수 있습니다. 간단하게 빌드 설정 다이얼로그에서 빌드 타겟을 선택하고 ‘Build’ 버튼을 누르면 됩니다. 스탠드얼론 플레이어를 빌드할 때에는 빌드 타겟에 따라 결과로 얻는 파일이 달라집니다. Windows 빌드 타겟에서는 실행 파일(.exe)과 더불어 애플리케이션의 모든 리소스를 포함하는 Data 폴더가 빌드됩니다. Mac 빌드 타겟에서는 애플리케이션의 실행에 필요한 파일과 리소스를 포함한 앱 번들이 빌드됩니다.

스탠드얼론을 배포하려면 Mac에서는(모든 것이 패킹된) 앱 번들을 제공해야 합니다. Windows의 경우 다른 사람이 실행할 수 있도록 하려면 .exe 파일과 Data 폴더를 제공해야 합니다. 다른 사람이 게임을 실행하려면 Unity가 빌드한 결과 파일을 자신의 컴퓨터에 동일하게 가지고 있어야 합니다.

빌드 프로세스 살펴보기

빌드 프로세스는 지정한 위치에 빌드된 게임 애플리케이션의 빈 복사본을 배치시킨 후 빌드 설정의 씬 리스트를 처리하고 에디터에서 하나씩 열어 최적화하고 애플리케이션 패키지에 통합합니다. 또한 포함된 씬이 요구하는 에셋을 전부 계산하고 해당 데이터를 애플리케이션 패키지의 별도 파일에 저장합니다.

  • ‘EditorOnly’ 태그가 붙은 씬의 모든 게임 오브젝트 는 퍼블리시된 빌드에 포함되지 않습니다. 최종 게임에 포함될 필요 없는 스크립트의 디버깅에 유용합니다.

  • 새로운 레벨을 로드할 때 이전 레벨의 모든 오브젝트가 삭제됩니다. 이를 방지하려면 삭제를 원치 않는 모든 오브젝트에 DontDestroyOnLoad()를 사용해야 합니다. 레벨을 로드할 때 계속 음악을 재생하거나 게임 상태와 진행을 유지시키는 게임 컨트롤러 스크립트에 주로 사용됩니다.

  • 새로운 레벨의 로드가 완료되면 OnLevelWasLoaded()라는 메시지가 사용 중인 모든 게임 오브젝트에 전송됩니다.

  • 여러 씬(예: 메인 메뉴, 하이스코어 화면, 실제 게임 레벨 등)이 있는 게임을 만드는 가장 좋은 방법에 대한 자세한 내용은 튜토리얼을 참조하십시오.

프리로딩

퍼블리시된 빌드는 씬을 로드할 때 씬에 있는 모든 에셋을 자동으로 프리로드합니다. 씬 0은 이 규칙에서 제외됩니다. 일반적으로 첫 번째 씬은 최대한 빨리 표시하고자 하는 스플래시 화면이기 때문입니다.

모든 콘텐츠가 프리로드되는지 확인하려면 Application.LoadLevel(1) 을 호출하는 빈 씬을 생성하고 빌드 설정에서 해당 빈 씬의 인덱스를 0으로 설정해야 합니다. 그러면 이후의 레벨이 모두 프리로드됩니다.

게임 빌드 준비 완료

지금까지 Unity의 인터페이스 사용법, 에셋 사용법, 씬 생성 방법, 빌드 퍼블리시 방법을 살펴보았습니다. 꿈의 게임을 만드는 데 장애물이란 없습니다. 물론 만들어 가면서 훨씬 더 많은 내용을 배우게 되며 Unity가 여러분을 도와드리겠습니다.

게임 레벨 구성에 대한 자세한 내용은 씬 생성 섹션을 참조하십시오.

스크립팅에 대한 자세한 내용은 스크립팅 섹션을 참조하십시오.

아트 생성과 에셋 임포트에 대한 자세한 내용은 매뉴얼의 에셋 워크플로를 참조하십시오.

Unity 사용자 및 개발자의 커뮤니티와 소통하려면 Unity 포럼을 방문해야 합니다. 질문을 하고 프로젝트를 공유하며 팀을 꾸리는 등 원하는 활동을 할 수 있습니다. 포럼에 꼭 방문해서 사용자가 제작한 멋진 게임을 공유해 줄 것을 기대합니다.

크로스 플랫폼 고려사항
문제 해결(Troubleshooting)