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