나는 많은 문제와 해결책을 찾고 있었다 : – 안드로이드의 버전 : Kitkat 4.4 쓰기를 금지, 그래서 내 버전을 업그레이드했습니다 – AssetBundle.CreateFromFile 동안 압축되는 자산 번들이 압축되지 않은 자산 번들을 필요로하므로 압축되지 않은 자산 번들을 만들었습니다 – 자산 번들은 플랫폼에 따라 다르므로 Android용 자산 번들을 만들었습니다 (+압축되지 않은 배열)- 그리고 지금은 안드로이드로 해석 할 수없는 C # 관리 배열 (byte array)을 찾고 있습니다. 참고: 공개적으로 액세스할 수 있는 서버에 에셋 번들이 없거나 빌드 시 번들의 존재를 확인할 수 없는 경우 PrepareBundlesForUpload()를 사용하여 건너뛸 수 있습니다. 이 경우 AssetBundles/스테이징에서 번들을 직접 업로드하거나 필요한 사용자 지정 논리를 수행하여 업로드해야 하는 번들을 결정할 수 있습니다. 유니티 다운로드 구현이 다소 지저분하고 어색하다는 것을 알았기 때문에, 제 프로젝트에서 Github의 에셋 번들 관리자(Unity가 아닌)의 에셋 번들 관리자를 사용하고 있습니다. https://github.com/SadPandaStudios/AssetBundleManager 네, 유니티 5.x를 사용하고 있습니다. 그러나 동일한 프로세스인 것 같습니다 (5에 더 쉽게) 이 작업을 수행하려면 에셋 번들을 만드는 하나의 편집기 스크립트가 있습니다. 그래서, 우리는 ExportAssetBundles.cs 라는 편집기 스크립트를 만듭니다. 그런 다음 선택한 자산에서 자산 번들을 만드는 메서드를 정의합니다. 에셋 번들은 에셋의 콘텐츠입니다. 먼저 자산 번들을 만드는 편집기 스크립트를 만들어야 합니다.
[참조. 예제 프로젝트에서 파일 ExportAssetBundles.cs]. 저는 Dipak Sorathia이고 Unity3D 게임 엔진에서 1년 이상 3D 게임 개발자로 일해 왔습니다. 영화 촬영 및 시각 효과를 통해 게임에서 훌륭한 경험을 창출하십시오. 에셋 번들은 Unity에서 정상으로 정의됩니다( 예: 번들의 일부로 에셋에 태그를 지정하는 경우). 번들을 빌드하려면 AssetBundleBuilder.BuildAssetBundles()를 호출합니다. 이렇게 하면 프로젝트 디렉터리의 자산 번들/ 에셋 번들(AssetBundles/)에 자산 번들을 빌드한 다음 번들을 AssetBundles/스테이징으로 복사하고 이름이 바꿉니다. 스테이징 디렉터리에는 빌드된 플랫폼에 대한 현재 자산 번들 집합이 포함됩니다. 이 프로젝트에는 다운로드 자산과 같은 모든 기능을 처리하는 AssetBundleManager.cs 스크립트가 포함되어 있으며 이미 다운로드된 경우 캐시 자체에서 로드됩니다.
AssetBundleManager.cs 스크립트에는 자산을 언로드하고 로드하는 몇 가지 방법이 있습니다. AssetBundleManager와 UI 사이의 브리지역할을 하는 스크립트를 만듭니다. 따라서 AssetLoader.cs 라는 스크립트를 만들고 UI 참조 및 단추 이벤트를 할당합니다. 런타임에 게임 클라이언트가 다운로드해야 하는 번들을 결정하고 지정된 번들에 대해 다운로드할 올바른 파일 이름을 결정하는 데 필요한 정보입니다. AssetBundleDescription 클래스는 이 정보에 액세스하기 위한 유틸리티를 제공합니다. 당신이 사용할 때 LoadFromCacheOr다운로드 당신은 당신에 의해 버전 매개 변수를 대체. 버전이 마지막으로 다운로드 한 것보다 큰 경우 그리고 통일성은 그것을 donwload 것입니다. 에셋번들을 빌드하고 로드해야 하는 편집기에서 작업할 때 개발 프로세스가 느려질 수 있습니다. 예를 들어, AssetBundle의 에셋이 수정되면 AssetBundle을 다시 빌드해야 하며 프로덕션 환경에서는 모든 AssetBundle가 함께 빌드되어 단일 AssetBundle을 업데이트하는 프로세스가 긴 작업일 수 있습니다. 더 나은 방법은 에셋번들에서 자산을 로드하는 대신 에셋을 직접 로드하는 별도의 코드 경로를 편집기에서 하는 것입니다.