Unity Web Request Downloading Asset Bundle
Download an AssetBundle from a remote server using UnityWebRequest.GetAssetBundle.
읽는 시간 1분최근 업데이트: 한 달 전
원격 서버에서 에셋 번들을 다운로드하려면 을 사용하면 됩니다. 이 함수는 데이터를 내부 버퍼로 스트리밍하며, 워커 스레드에서 에셋 번들의 데이터를 디코드하고 압축을 풉니다.
UnityWebRequest.GetAssetBundle함수의 인수는 여러 가지 형태를 가집니다. 가장 간단한 형태는 에셋 번들을 다운로드해야 하는 URL만 인수로 사용하는 것입니다. 다운로드된 데이터의 무결성을 확인하기 위해 체크섬을 제공할 수도 있습니다.
또는 에셋 번들 캐싱 시스템을 사용하려는 경우 버전 번호 또는 Hash128 데이터 구조를 제공할 수도 있습니다. 이는 를 통해 이전 시스템에 제공된 버전 번호 또는 와 동일합니다.
WWW.LoadFromCacheOrDownloadHash128 objects세부 정보
- 이 함수는 를 생성하며 타겟 URL을 제공된 URL 인수로 설정합니다. 또한 HTTP 동사를
UnityWebRequest으로 설정하지만 다른 플래그나 커스텀 헤더는 설정하지 않습니다.GET - 이 함수는 을
DownloadHandlerAssetBundle에 연결합니다. 이 다운로드 핸들러는 특수한UnityWebRequest프로퍼티를 가지고 있습니다. 에셋 번들 내부의 리소스에 액세스할 수 있을 만큼 충분한 데이터가 다운로드 및 디코딩되고 나면 이 프로퍼티를 사용해 에셋 번들을 추출할 수 있습니다.assetBundle - 버전 번호 또는 오브젝트를 인수로 제공하면 해당 인수도
Hash128에 전달됩니다. 이후 다운로드 핸들러가 캐싱 시스템을 활용합니다.DownloadHandlerAssetBundle
예제
using UnityEngine;using UnityEngine.Networking;using System.Collections; public class MyBehaviour : MonoBehaviour { void Start() { StartCoroutine(GetAssetBundle()); } IEnumerator GetAssetBundle() { UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle("https://www.my-server.com/myData.unity3d"); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www); } }}