創作世界のいろいろ〜AdobeとかC#とか

絵を描く人がC#とか3Dとか動画編集とかやる為の備忘録

【Unity】URLで画像取得して複数のImageを一括変換

簡単にゲームオブジェクトのImageをURLから引っ張ってくる方法

 

1.画像をサーバーにアップロード

3つの画像をサーバーにある同じディレクトリにアップロードします。

 

ban01.png という名前です。

ban02.png という名前です。

ban03.png という名前です。

 

同じディレクトリにアップロードしたので、URLがそれぞれ 『 https://~~~/ban01.png 』というように末尾のファイル名だけ違う状態になる。

 

2.ファイル名と同じ名前のゲームオブジェクトを作成

 

3.スクリプトでURLから画像を取得してspriteに変換する

以下のコード

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

public class BannerImageLoadController : MonoBehaviour
{
private Sprite banner01;
private String objectName;

void Start() {
        objectName = this.name;
        StartCoroutine(GetTexture());
    }
 
    IEnumerator GetTexture() {
        UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://<YOUR SERVER>/img/"+objectName+".png");
        yield return www.SendWebRequest();

        if (www.result != UnityWebRequest.Result.Success) {
            Debug.Log("ImageLoadERROR:"+www.error);
        }
        else {
            Texture2D tex =((DownloadHandlerTexture)www.downloadHandler).texture; 
            banner01 = Sprite.Create(tex , new Rect(0,0,tex.width,tex.height),Vector2.zero);
            var bancomponent = this.gameObject.GetComponent<Image>();
            bancomponent.sprite = banner01;
        }
    }
}

URLの末尾を、アタッチしてるゲームオブジェクト名を取得したstring変数にしてます。

このスクリプトを、それぞれのゲームオブジェクトにアタッチさせるだけ。

 

らくちんです

インプットフィールドで入力させて読み込ませるのも面白そう。