Unity
[유니티] url 에서 이미지 다운로드하기
cho22
2021. 7. 16. 23:54
반응형
개발하던 중 이미지 url을 이용해 사진을 다운로드 하여 보여주는 기능을 구현하게 되었다.
유니티 도큐먼트를 찾아보면 https://docs.unity3d.com/Manual/UnityWebRequest-RetrievingTexture.html 이 문서를 보면 쉽게 따라할 수 있다. (따라했는데 안된다면 대부분 GetTexture를 StartCoroutine하지 않고 일반 함수처럼 호출했을 가능성이 큼.)
using UnityEngine; using System.Collections; using UnityEngine.Networking; public class MyBehaviour : MonoBehaviour { void Start() { StartCoroutine(GetTexture()); } IEnumerator GetTexture() { UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://www.my-server.com/image.png"); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture; } } } |
나는 static 함수로 다운로드 텍스쳐 함수를 만들어서 인자로 내가 텍스쳐를 넣을 RawImage와 다운로드받을 URL을 받아서 함수내에서 넣어주도록 만들어서 사용하고 있다. (호출할때 코루틴 주의)
public static IEnumerator SetDownloadTexture(RawImage image, string downloadURL) { UnityEngine.Networking.UnityWebRequest request = UnityEngine.Networking.UnityWebRequestTexture.GetTexture(downloadURL); yield return request.SendWebRequest(); if (request.result != UnityEngine.Networking.UnityWebRequest.Result.Success) Debug.Log(request.error); else { image.texture = ((UnityEngine.Networking.DownloadHandlerTexture)request.downloadHandler).texture; image.SetNativeSize(); } } |
반응형