【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変数にしてます。
このスクリプトを、それぞれのゲームオブジェクトにアタッチさせるだけ。
らくちんです
インプットフィールドで入力させて読み込ませるのも面白そう。