ごあいさつ
皆さん、こんにちは。ぶんじゃくです。
残暑厳しい中いかがお過ごしでしょうか。
さて今回はUnityで、Web上にある画像を取得して、ゲーム上で使用する方法についてお話します。
とりあえず、以下のサンプルをご覧ください。
サンプル
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.UI;
public class ClassTest : MonoBehaviour
{
// ButtonTestとRawImageTestは、あらかじめシーン内の何かのGameObjectを指定しておきます。
public RawImage RawImageTest;
public Button ButtonTest;
void Start()
{
StartCoroutine(CreateSprite());
}
IEnumerator CreateSprite()
{
// 画像のURLを指定する
var strUri = "https://xxx.png";
UnityWebRequest req = UnityWebRequestTexture.GetTexture(strUri);
yield return req.SendWebRequest();
if (req.isNetworkError || req.isHttpError)
{
Debug.Log(req.error);
yield break;
}
else
{
Texture2D tex = ((DownloadHandlerTexture)www.downloadHandler).texture;
// RawImageの場合はtextureを差し替えるだけでOK
RawImageTest.texture = tex;
// SpriteにしないといけないものはテクスチャからSpriteを生成してから差し替え
Sprite spr = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.zero);
Button.GetComponent<Image>().sprite = spr;
}
}
}
まとめ
ポイントとしてはまず、UnityWebRequestTexture.GetTextureでTexture2D型の画像が取得できること。
次に、何らかのGameObjectに貼り付けるためにはSpriteに変換しないといけないということ。
今回は手短ですが以上になります。
さようなら。