logo

에셋 번들 다운로드

게임이 빌드 크기가 너무 크고 크기를 줄이려면 필요할 때 런타임 중에 게임 에셋을 로드하는 것을 고려해야 합니다. 이 기술은 필요할 때 에셋 런타임을 다운로드하는 데 가장 유용한 기술이며 빌드 크기도 줄입니다. 게임 크기가 큰 경우 모바일 플랫폼에서 특히 유용합니다. Unity 프레임워크에서 기본 코드는 C# 언어로 작성되고 dll 파일로 컴파일됩니다. 이진 파일에서 압축됩니다. APK 파일을 추출한 후 다음에서 볼 수 있습니다. 그렇지 않은 경우 AssetBundles Building AssetBundle은 빌드된 실행 응용 프로그램에 별도로 로드될 목적으로 컴팩트한 파일에 저장된 프로젝트의 자산 및/또는 장면 모음을 참조하십시오. Unity 에셋 번들 추출기라는 번들을 추출할 수 있는 아주 좋은 도구를 찾았는데, 이는 자산 관리가 더 번거롭고, 많은 팀에서 특히 아티스트와 레벨 디자이너에게 딜 브레이커가 될 수 있습니다. 또한 Enums를 사용하여 이 모든 것을 관리할 수 있더라도 시스템에 오류가 발생하기 쉽습니다. 두 가지 장점을 모두 활용할 수 있도록 에디터의 에셋에 대한 링크를 유지하고 자산의 이름과 번들 이름으로 대체하는 특정 개체 참조 클래스에 대해 생각하기 시작했습니다. 다음은 그 목적을 위해 사용하는 코드 의 한 부분입니다.

파일의 일부는 편집자(UNITY_EDITOR)에 대해서만 컴파일됩니다. 또한 AssetReference getter가 Setter 메서드를 호출하여 자산 참조 이름 및 번들 이름을 강제로 새로 고치는 것을 알 수 있습니다. 에셋 번들을 사용하는 경우 편집기에서 에셋을 끌어서 놓을 가능성을 희생하고 에셋을 참조하는 대신 문자열을 사용하는 방법을 배웠을 것입니다. 이 문서에서는이 문제를 완화 하기 위해 배치 하는 솔루션을 설명 합니다. 이 프로젝트에는 다운로드 자산과 같은 모든 기능을 처리하는 AssetBundleManager.cs 스크립트가 포함되어 있으며 이미 다운로드된 경우 캐시 자체에서 로드됩니다. AssetBundleManager.cs 스크립트에는 자산을 언로드하고 로드하는 몇 가지 방법이 있습니다. 에셋 번들은 모든 종류의 Unity 에셋(예: 프리팹)일 수 있습니다. 그들은 액세스하고 다른 Unity 게임에 다운로드 할 수 있습니다 전에, 하지만 먼저 통일 내부에 구축해야합니다. AssetBundles로 잠시 연주 한 후, 나는 하나의 크고 간단한 기능을 누락 된 것을 깨달았다 : 단순히 드래그 앤 편집기에서 자산을 드롭 할 수있는 가능성. 이제 프리팹을 선택하고 자산 생성을 클릭하여 자산 번들을 빌드하여 자산 번들을 만듭니다. 에셋번들 디렉토리에서 번들을 만듭니다. 콘텐츠를 새로 고쳐 번들 파일을 확인합니다.

유니티 다운로드 구현이 다소 지저분하고 어색하다는 것을 알았기 때문에, 제 프로젝트에서 Github의 에셋 번들 관리자(Unity가 아닌)의 에셋 번들 관리자를 사용하고 있습니다. https://github.com/SadPandaStudios/AssetBundleManager yucchiy/unity-에셋번들-데모에서 새로운 릴리스에 대한 알림을 받을 수 있습니까? 나는 우리의 솔루션에 매우 만족하고 지금은 아주 잘 그 목적을 제공합니다. 다른 사람들이 자산 번들을 잘 처리하기 위해 발견 했을 수 있는 솔루션에 대해 듣고 싶습니다. 이러한 구현이 더 잘 이루어질 수 있다고 확신하며, 현재 거의 모든 모바일 게임에 에셋 번들이 필수라는 점을 고려하면 Unity는 기본적으로 이를 제공해야 한다고 생각합니다. 이렇게 하려면 에셋 번들을 만드는 하나의 편집기 스크립트가 있습니다. 그래서, 우리는 ExportAssetBundles.cs 라는 편집기 스크립트를 만듭니다. 그런 다음 선택한 자산에서 자산 번들을 만드는 메서드를 정의합니다. 이제 생성된 자산 번들 파일을 선택하고 오른쪽 아래 모서리에서 자산의 이름과 버전을 먼저 경로 속성에서 생성된 자산 번들의 대상 경로를 정의합니다. 여기, 자산의 빌드 대상은 안 드 로이드 그래서 당신은 당신이 필요로 하는 무엇이 든으로 대상 플랫폼을 변경할 수 있습니다. .assetBundle 속성에 액세스하면 다운로드한 데이터가 추출되고 AssetBundle 개체가 만들어집니다.

Comments are closed.