はじめに
今回はネットから画像を取得してUnity上に表示をしてみる記事になります!
イメージとしては以下の画像の感じです。
これはHttpサーバーにリクエストを送ることで、画像のデータをレスポンスとして取得できます。
これを実現するためにHttpClient
を使うなどの方法が考えられますが、Unityではそれ専用のメソッドが用意されているようです。
またUnityのメソッドではテクスチャを効果的にダウンロードしソートするために最適化されているようで、非同期等の特別な理由がなければこちらを利用した方がよさそうです。
このUnityのメソッドの簡単な説明とその使い方の例をみていきましょう。
UnityWebRequestTexture.GetTextureメソッド
そのUnityの専用のメソッドはUnityWebRequestTexture.GetTexture
メソッドです。
public static Networking.UnityWebRequest GetTexture (string uri);
引数 | 意味 |
---|---|
uri | ダウンロードするイメージの URI |
Networking.UnityWebRequestTexture-GetTexture - Unity スクリプトリファレンス
一応もう一つだけオーバーロードがあるのですが、基本はこちらだけで良いと思います。
かなり直感的に使えるのでいい感じですね。
使用例
using UnityEngine; using System.Collections; using UnityEngine.Networking; using UnityEngine.UI; public class ImageTest : MonoBehaviour { private const string URI = "https://4.bp.blogspot.com/-4xxTe_qeV1E/Vd7FkNUlwjI/AAAAAAAAxFc/8u9MNKtg7gg/s800/syachiku.png"; [SerializeField] private RawImage _image; IEnumerator Start() { UnityWebRequest www = UnityWebRequestTexture.GetTexture(URI); //画像を取得できるまで待つ yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { //取得した画像のテクスチャをRawImageのテクスチャに張り付ける _image.texture = ((DownloadHandlerTexture)www.downloadHandler).texture; } } }
さいごに
ネット上から取得ができることで、様々な活用方法があると思います。
是非上手く活用してみてください!