더듬이의 헬로월드

Hello, World!

게임 엔진/유니티,Unity

[UNITY] 유니티에서 다운로드 링크를 통해 이미지/동영상 등을 다운받는 방법

더듬이 2023. 2. 26. 15:07
728x90

https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.html

이 코드는 UnityWebRequest 클래스를 사용하여 파일을 다운로드합니다. DownloadFile() 함수는 다운로드할 파일의 URL과 파일을 저장할 경로와 파일 이름을 인자로 받습니다. 함수는 StartCoroutine()을 사용하여 코루틴으로 실행됩니다.

UnityWebRequest.Get()을 사용하여 다운로드할 파일의 URL을 요청합니다. 그리고 SendWebRequest()를 사용하여 비동기 방식으로 요청을 보냅니다. 요청이 완료되면 UnityWebRequest.Result.Success 또는 UnityWebRequest.Result.Failure 중 하나의 값이 반환됩니다.

요청이 성공한 경우, downloadHandler.data를 사용하여 파일을 저장합니다. 그리고 System.IO.File.WriteAllBytes()를 사용하여 파일을 지정된 경로에 저장합니다.

요청이 실패한 경우, request.error를 사용하여 오류 메시지를 로그에 출력합니다.

이 코드를 사용하여 파일을 다운로드할 때는, 다운로드할 파일의 URL과 파일을 저장할 경로와 파일 이름을 올바르게 설정해야 합니다. 또한, 다운로드한 파일이 저장될 위치에 쓰기 권한이 있는지 확인해야 합니다.

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class DownloadFileExample : MonoBehaviour
{
    public string fileURL;  // 다운로드할 파일의 URL
    public string savePath; // 파일을 저장할 경로와 파일 이름

    void Start()
    {
        StartCoroutine(DownloadFile(fileURL, savePath));
    }

    IEnumerator DownloadFile(string url, string savePath)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.result != UnityWebRequest.Result.Success)
        {
            Debug.Log(request.error);
        }
        else
        {
            System.IO.File.WriteAllBytes(savePath, request.downloadHandler.data);
            Debug.Log("File downloaded successfully");
        }
    }
}
728x90