728x90
반응형
1. 개요
Unity5.4에서 공식적으로 발표 된 [UnityWebRequest]를 사용하여
web에있는 이미지 파일을 다운로드하여
로컬에 저장하려고합니다.
동작 확인을 실시한 nity 버전은 [2019.2.13f1]입니다.
2.스크립트
using System;
using System.IO;
using UnityEngine.Networking;
StartCoroutine(GetwebReqContents());
private IEnumerator GetwebReqContents()
{
Debug.Log("처리시작");
while (Application.internetReachability == NetworkReachability.NotReachable)
{
Debug.Log("인터넷 접속불가 상태");
yield return new WaitForSeconds(5f);
}
Debug.Log("이미지 다운시작");
UnityWebRequest webReq = UnityWebRequestTexture.GetTexture("이미지URL");
yield return webReq.SendWebRequest();
Debug.Log("이미지 다운완료");
if (webReq.isNetworkError || webReq.isHttpError)
{
Debug.Log(webReq.error);
}
else
{
try
{
File.WriteAllBytes(@"실저장경로", webReq.downloadHandler.data);
Debug.Log("저장완료");
}
catch(Exception ex)
{
Debug.Log(ex.Message);
}
}
}
3.사용법
기본적으로 코루틴 (Coroutine )을 사용하게됩니다.
[IEnumerator] 인터페이스를 사용하여 [StartCoroutine]에서 함수를 실행합니다.
스크립트에 대한 설명은
[Application.internetReachability] 인터넷 액세스 상태를 확인합니다.
상태가 [NetworkReachability.NotReachable]이면
인터넷에 연결되지 않은 상태이므로
yield return new WaitForSeconds (5f);
위에서 5 초간 처리를 중지하고 다시 시작합니다.
액세스 가능한 상태가 될 때까지 반복합니다.
액세스 가능한 상태
NetworkReachability.ReachableViaCarrierDataNetwork
or
NetworkReachability.ReachableViaLocalAreaNetwork : Wi-Fi
되면
UnityWebRequestTexture.GetTexture
에서 HTTP Get 통해 이미지를 다운로드로 이동합니다.
다운로드가 완료되면 지정된 경로에 저장형태입니다.
728x90
반응형
'Unity3D' 카테고리의 다른 글
[Unity3D] Awake 와 Start의 차이점 (0) | 2020.11.19 |
---|---|
Unity 3D Gameobject.Find 에서 검색되는 기준 (0) | 2020.11.17 |
Unity 에서 GET HTTP 호출 하기 UnityWebRequest (0) | 2020.11.17 |
Unity에서 Asset Store 에 로그인 되지 않을 때 (0) | 2020.11.08 |
[Unity]FindOfjectsOfType<T> 와 GetComponents<T> 중 어떤게 더 빠를까? (0) | 2020.11.02 |
댓글