Version: 2021.2
언어: 한국어
HTTP 서버에서 텍스처를 검색해서 가져오기(GET)
HTTP 서버로 양식 보내기(POST)

HTTP 서버에서 에셋 번들 다운로드(GET)

중요: UNet은 지원이 중단된 솔루션이며, 새로운 멀티플레이어 및 네트워킹 솔루션(게임 오브젝트용 넷코드)이 개발 중입니다. 자세한 내용과 다음 단계는 게임 오브젝트용 Unity 넷코드 웹사이트에 있는 정보를 참조하십시오.

원격 서버에서 에셋 번들을 다운로드하기 위해 UnityWebRequest.GetAssetBundle을 사용할 수 있습니다. 이 함수는 데이터를 내부 버퍼로 스트리밍하며, 워커 스레드에서 에셋 번들의 데이터를 디코드하고 압축을 풉니다.

함수의 인수는 여러 가지 형태입니다. 가장 간단한 형태는 에셋 번들을 다운로드해야 하는 URL만 인수로 사용하는 것입니다. 다운로드된 데이터의 무결성을 확인하기 위해 검사 합계를 제공할 수도 있습니다.

또는 에셋 번들 캐시 시스템을 사용하고 싶은 경우 버전 번호 또는 Hash128 데이터 구조를 제공할 수도 있습니다. 이는 WWW.LoadFromCacheOrDownload를 통해 이전 시스템에 제공된 버전 번호 또는 Hash128 오브젝트와 동일합니다.

세부 정보

  • 이 함수는 UnityWebRequest를 생성하며 타겟 URL을 제공된 URL 인수로 설정합니다. 또한 HTTP 동사 GET을 설정하지만 다른 플래그나 커스텀 헤더는 설정하지 않습니다.
  • 이 함수는 DownloadHandlerAssetBundleUnityWebRequest에 연결합니다. 이 다운로드 핸들러는 특별한 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);
        }
    }
}
HTTP 서버에서 텍스처를 검색해서 가져오기(GET)
HTTP 서버로 양식 보내기(POST)