CG・映像デザイナー技術ブログ

【Unity】SpriteおよびRawImage 画像を読み込む方法

eyecatch_unity

本記事ではコードを使った画像の読み込み方法をまとめて紹介しています。

この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

Unity:スプライト画像を読み込む方法

  • 差し替える画像(ブログのprofile画像)

インスペクターで指定したSprite画像に変更する場合

  • GameObject>UI>Imageを作成
  • Imageに下記のコードをアタッチ

  • アタッチ後、Spriteに画像(profile)をアサイン
  • 再生を押すと、Imageの画像(profile)に変化します。

メモ

  • publicにしたくなかったので、[SerializeField]をつけてprivateでもインスペクタに表示できるように
  • imageのコンポーネントに直接アタッチ。別のゲームオブジェクトにつけて GameObject.Find("Image")みたいにして探すのは処理が重い。
参考 ファイルパスからTexture2DやSpriteの読み込みQiita 参考 UI.Image.spriteスクリプトリファレンス

メモ

  • Assets直下にResourcesフォルダを作成し、そのなかにスプライト画像(profile)を格納。

Resources.Load < Sprite >()で読み込む。

参考 Resources.Loadスクリプトリファレンス

Unity:RawImageでネットワークから取得した画像の表示する方法

ImageではなくRawImageを使うと、ネットワークから取得した画像の表示することができるようなので試してみました。

参考 script-RawImageマニュアル

やり方

下記のコード(GetNetworkImage.cs)を適当に作成したRawImage(h100 w100)にアタッチして再生すると、ネットから画像を取得して表示できます。

ブログのプロフィール画像を表示させてみました。

参考 Image と RawImage は何が違うのかいんでぃーづ

メモ

IEnumerator Start IEnumeratorはコルーチンを使えるようにする型。

new WWW(url); wwwクラスのコンストラクタに画像URLを指定

参考 イールド。 コルーチン(時間を絡めた処理)画像ダウンロードされるまで待つスクリプトリファレン

yield return www;

この記述が無いと返り値を返さないとエラーerror CS0161: `ImageDownloder.Start()': not all code paths return a valueがでる

www.textureNonReadable;ダウンロードしたデータからピクセルデータの読み込みができない Texture2D を生成し返す

参考 WWW.textureNonReadableスクリプトリファレンス

rawImage.SetNativeSize();を追加すると画像サイズで表示できる

参考 UI.RawImage.SetNativeSizeスクリプトリファレンス

以上、すいみん(@cg_method)でした!