URLから画像をロードして表示する!URL texture loaderの使い方

  Unity   ,




こんにちは! Unity勉強中のAki(@akisnote)です!

今回は、URL texture loaderというアセットを使ってみました。指定したURLから画像をロードして表示してくれるアセットになります。 スクリプトを追加するだけで使えるので、私のようなプログラムに自信がない人にもおすすめです!

ゲーム内に広告を表示したり、メンテナンスなどのお知らせを表示するのにも使えそうですね。

では、早速見てみましょう!

アセット概要

このスクリプトを使えば、インターネットから簡単にテクスチャを読み込むことができます。 たとえば、リリース後にゲーム内で広告を変更できます。 あなたはスクリプトで画像のURLを入力する必要がありますし、テクスチャはゲームを開始するときにロードされます。 インターネット接続がない場合、テクスチャは元のままになります。
URL texture loader - Asset Store(Google翻訳)

指定したURLから画像をロードするので、リリース後であっても画像の差し替えができちゃうところが良いですよね。

作業環境

以下の環境で作業しました。

  • windows10
  • Unity 2018.3.2f1
  • URL texture loader 1.2

使い方

用意されているプレハブを使う

まずは、用意されているプレハブを使ってみましょう。

URL texture loaderフォルダ内のprefabという名前のプレハブをシーンにドラッグします。

元々用意されている看板のプレハブをシーンに配置します。ゲームを開始すると画像がロードされてここに表示されます。

カメラに映るように位置の調整だけしてみました。実行前は何も表示されていません。

ゲームを開始するまでは画像はロードされないので何も表示されていない。

これを実行してみると……

元々設定されているURLでそのまま実行してみるとGESTGAMESと書かれている画像が出力されました。

じゃじゃーん! ばっちり画像が表示されました。(ライトはミスしました。暗い……)

インスペクターウィンドウのスクリプトを確認するとURLという欄があることがわかる。この欄に画像URLをセットすることでそこから画像をロードして表示してくれる。

設定されているURLから画像をロードして、ゲーム内に表示しているというわけですね。

では次に、サーバーに適当な画像をアップして、その画像URLを指定してみます。

画像をサーバーにアップしたのでそのURLを指定した。これでゲームを開始すればこのURLを見に行き画像をロードしてくれる。

実行すると……、どどーん!

用意しておいたこのブログのタイトル画像がゲーム内に表示された。

このブログのタイトルが表示されましたね。透過PNGを用意したのですが、透過部分は黒くなるようです。

なお、用意する画像サイズですが、2のべき乗が推奨されています。これ以外の任意のサイズでも表示はされますが、ロードが長くなったり、メモリを余計に消費することがあるようです。
参考:WWW.LoadImageIntoTexture

続けていきましょう。今度は、URL(ファイル名)は変えずに、画像を変えてみます。これを実行すると……

指定しているURLは同じだが画像ファイルを変えておいたので表示される画像も差し替わったのがわかる。

画像が差し替わりました! 少し見づらいですが設定しているURLは変わっていません。

うーん、簡単!

ゲームオブジェクトに画像を表示する

用意してあったプレハブではなく、自分で用意したゲームオブジェクトに画像を表示してみましょう。

やり方は、画像を表示したいゲームオブジェクトに、スクリプトを追加するだけです!

平面のゲームオブジェクトを配置して、URL_textureというスクリプトを追加してみました。これを実行してみると……

スクリプトを追加したことで平面に画像が表示された。

じゃーん! デフォルトの画像が表示されましたね。成功です。

ちなみにCubeに対してスクリプトを追加したところ、全ての面に画像が表示されてしまいました。

Cubeに対してスクリプトを追加すると全ての面に画像が表示されてしまった。

これはこれで面白いですが、お知らせなどの用途であれば、平面のゲームオブジェクトを使った方が良さそうです。

誤ったURLを設定した場合

今までは正しく設定したパターンを見てきましたが、 わざと存在しない画像(URL)を指定してみるとどうなるでしょうか?

百聞は一見にしかずということで試してみると、「?」が表示されました。かなり引き伸ばされているのかぼやけています。見た目もよくないのでURLの指定ミスには注意ですね。

存在しないURLを指定すると空白ではなくはてなマークが表示された。これはアセットで用意されたものではなくUnity側で生成された画像。

ちなみにURLを空欄にしたり、インターネットに接続していない場合は、真っ白のまま何も表示されませんでした。

使い方まとめ

プレハブを利用するなら

  • プレハブをシーンに配置する
  • インスペクターウィンドウで画像URLを設定する

それ以外なら

  • 画像を表示したいゲームオブジェクトをシーンに配置する
  • 配置したゲームオブジェクトにURL_texture(Script)を追加する
  • インスペクターウィンドウで画像URLを設定する

以上!

あとがき

ブログを書きながら、きちんとビルドして試すべきだったなーと思ったりもしましたが、簡単に試してみたかったのでご容赦を……。

URL texture loaderは、簡単に使えるところがとても良いですね。面倒なこともなく楽しく作業できました。

Unityのドキュメントを見て自前で実装することも可能だと思いますが、便利なアセットがあるなら遠慮なく使わせていただきましょう。節約できた時間で他のアセットを試すも良し、ゲームのクオリティアップを図るも良しです。

URL texture loaderは無料のアセットですので、気になった方はぜひ試してみてください。

ダウンロードはこちらからどうぞ。

このアセットを使ったら面白そう!という直感は正解でした!では!


関連ページ