🗂

Unityでネットワークから画像を取得してオブジェクトにマテリアルとして張り付ける

2021/09/07に公開

メモとして残しておく

using UnityEngine.Networking;

public void ChangeBackgroundNetworkImage(string message)
    {
        if (ColorUtility.TryParseHtmlString(message, out color))
        {
            StartCoroutine(Connect(message));
        }
        else
        {
            // 失敗
        }
    }
    
    
  private IEnumerator Connect(string url)
    {
        UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
        yield return www.SendWebRequest();
        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            //textureに画像が入るよ
            Texture texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
            //textureをマテリアルにセット
            GetComponent<Renderer>().material.SetTexture("_MainTex", texture);
        }
    }

使う

ChangeBackgroundNetworkImage("https://hogehoge.jpg");

Discussion