에셋은 Unity 프로젝트에서 게임이나 앱을 만드는 데 사용되는 모든 요소입니다. 에셋은 프로젝트에서 3D 모델, 텍스처, 스프라이트, 음향 효과 또는 음악과 같은 시각적 또는 청각적 요소를 나타낼 수 있습니다. 또한 에셋은 컬러 그레디언트, 애니메이션 마스크, 임의의 텍스트나 숫자 데이터와 같이 추상적인 요소를 나타낼 수도 있습니다.
에셋은 Unity 외부에서 생성된 파일(3D 모델, 오디오 파일, 이미지 등)에서 가져올 수 있습니다. 또한 Unity 에디터에서 ProBuilder 메시, Animator 컨트롤러, 오디오 믹서, 렌더 텍스처와 같은 몇 가지 유형의 에셋을 만들 수도 있습니다.
위 도식은 Unity에서 에셋을 사용할 때의 일반적인 워크플로를 보여줍니다. 각 열은 다음과 같은 별도의 단계를 나타냅니다.
임포트는 사용할 소스 파일을 Unity 에디터에 가져오는 과정입니다. 프로젝트의 Assets 폴더에 파일을 저장하거나 복사하면 Unity가 해당 파일을 에디터에서 사용할 수 있도록 임포트합니다.
프로젝트에서 파일이 저장되는 위치, 각 유형의 에셋에 대한 임포트 설정을 조정하는 방법, 메타 파일의 용도, 에셋 데이터베이스가 임포트한 데이터를 저장하는 방법 등, Unity로 에셋을 임포트하는 몇 가지 기본적 방법을 알아야 합니다. 이 주제에 대한 자세한 내용은 에셋 임포트를 참조하십시오.
Unity 액셀러레이터를 사용하면 팀 단위의 작업에서 Unity의 에셋 처리 속도를 높일 수 있습니다.
필요한 에셋을 프로젝트로 임포트했다면 게임이나 앱을 만들 수 있습니다. 이 과정에서는 일반적으로 에셋을 하나 이상의 씬에 게임 오브젝트로 배치하고, 사용자가 해당 오브젝트와 상호 작용하는 방식을 제어하는 스크립트를 추가하게 됩니다.
프로젝트 개발이 커짐에 따라 게임을 런타임 시 선택한 추가 콘텐츠를 점진적으로 다운로드할 수 있도록 에셋을 별도의 그룹으로 분할해야 할 수도 있습니다.
생성 프로세스 중에 에셋을 별도의 번들로 그룹화하는 방법에 대한 전략을 결정하고 로드할 시기를 선택하는 코드를 구현할 수 있습니다.
에셋을 번들로 그룹화하면 초기 다운로드의 크기를 줄이고 추후 런타임에 일부 에셋을 로드할 수 있습니다. 이를 통해 게임이나 앱의 다운로드 크기와 메모리 사용량을 최적화할 수 있습니다. 이때 가장 효과적인 방법은 Unity의 어드레서블 시스템을 사용하는 것입니다.
빌드는 완료된 프로젝트를 바이너리 파일로 익스포트하여 선택한 플랫폼에서 배포하고 실행할 수 있게 만드는 프로세스를 가리킵니다. 예를 들어 Windows용 빌드를 구축할 경우, Unity는 .EXE 파일과 함께 배포할 수수 있는 몇 가지 데이터 파일을 함께 생성할 수 있습니다.
어드레서블 또는 에셋 번들을 사용하여 에셋을 별도의 다운로드 가능한 번들로 그룹화하는 경우 해당 번들 파일도 배포용으로 빌드해야 합니다.
자신의 컴퓨터에서 프로젝트를 빌드하거나, Unity 프로젝트에 대한 자동화된 빌드 생성 및 지속적 통합을 제공하는 Unity의 빌드 자동화 서비스를 사용할 수 있습니다.
게임 또는 앱과 관련 콘텐츠 번들의 빌드를 완료했다면 사용자들이 해당 빌드에 액세스할 수 있게 해야 합니다. 빌드를 배포하는 방법은 타게팅하는 플랫폼에 따라 달라집니다.
예를 들어, 모바일 플랫폼은 자체 앱 스토어를 가지고 있거나, 전문 퍼블리셔를 이용하거나, 자신의 서버에서 자체적으로 호스트할 수 있습니다.
Unity가 제공하는 자체 클라우드 콘텐츠 제공 서비스를 활용하면 게임이나 앱과 관련 콘텐츠를 호스팅하여 사용자에게 제공할 수 있습니다. 이 서비스는 Unity 개발 플랫폼에 완전히 통합되어 있어 많은 시간을 절약해 주며, 콘텐츠가 풍부한 라이브 게임이나 정기적인 콘텐츠 업데이트가 필요한 애플리케이션에서 요긴하게 활용할 수 있습니다.
사용자가 게임이나 앱을 로드하고 사용할 때 로드 프로세스와 경험은 사용자가 설정한 규칙과 프로그래밍, 그리고 에셋을 그룹화하고 번들로 묶은 방법에 의해 정의됩니다.
여기에 설명된 기술과 서비스를 조합하여 빠른 초기 다운로드, 프로젝트 수명 동안 롤아웃할 수 있는 지속적인 업데이트와 추가 콘텐츠를 제공할 수 있습니다.
Unity의 에셋 워크플로는 Unity 에디터에서 직접 편집하고 디자인하기 쉽게 만들어 주는 툴과 기능을 갖추고 있습니다.
Unity에서는 다양한 전략을 통해 에셋을 활용할 수 있습니다. 적합한 에셋 활용 전략은 팀 규모, 프로젝트 규모, 타겟 플랫폼, 해당 플랫폼의 메모리 가용성, 퍼블리싱 이후의 업데이트, 패치, DLC 릴리스 여부와 같은 다양한 요인에 따라 결정됩니다.
예를 들어 팀 단위로 작업하는 경우, 버전 관리 시스템과 함께 캐시 서버를 사용하여 Unity의 임포트 결과를 캐시하여 팀 전체의 시간을 절약할 수 있습니다.
별도의 번들로 퍼블리시하려는 많은 수의 에셋으로 작업하는 경우 에셋 그룹 중 일부를 별도의 프로젝트로 분리하여 팀 구성원이 해당 번들에서 작업하기 위해 하나의 거대한 프로젝트를 로드할 필요가 없도록 하는 것이 유용할 수 있습니다.
모든 에셋을 하나의 프로젝트에 유지할 경우, 빌드를 실행할 때 Unity가 현재 선택한 플랫폼에 맞는 올바른 포맷으로 자동으로 빌드합니다. 하지만 에셋을 여러 프로젝트로 분할하여 별도의 번들을 빌드한다면 지원하는 각 플랫폼에 대한 빌드를 만들어야 합니다. 자세한 내용은 어드레서블 다중 플랫폼용 빌드 기술 자료를 참조하십시오.
플랫폼의 특성에 따라서 런타임 에셋을 구성할 때의 제약이 결정됩니다. 예를 들어 PC나 macOS와 같은 스탠드얼론 플랫폼에서는 가상 메모리가 사실상 무제한이므로, Resources 폴더나 대형 에셋 번들을 사용하더라도 일반적으로 메모리 문제가 발생하지 않습니다. 반면 모바일 기기나 콘솔 플랫폼의 가상 메모리는 제한적이거나 아예 존재하지 않으므로, 이러한 플랫폼을 위해 빌드된 앱은 에셋을 보다 효율적으로 로드하고 언로드해야 합니다.
플랫폼에 대한 사용자의 기대 수준 역시 중요한 고려 사항입니다. 예를 들어 모바일 플랫폼에서 초기 다운로드 및 설치 과정에 많은 시간이 걸리면 플레이어가 앱을 플레이하기도 전에 앱을 지워버릴 수 있습니다. 따라서 모바일 앱은 초기 빌드에 최소한의 에셋 집합을 포함한 뒤, 사용자가 앱을 처음 실행할 때 원격 서버에서 남아 있는 에셋을 다운로드하는 방식을 일반적으로 사용합니다.