Unityで画像を動的に読み込む方法を紹介します。
Inspector指定、Resourcesフォルダ、ネットワーク取得の3パターンを解説します。
目次
方法1:Inspectorで指定したSprite画像に変更する
あらかじめInspectorで画像をアサインしておき、スクリプトから差し替える方法です。
手順
- GameObject → UI → Imageを作成
- 以下のスクリプトを作成してImageにアタッチ
- Inspectorで表示されるSpriteフィールドに画像をアサイン
- 再生するとImageの画像が変更される

using UnityEngine;
using UnityEngine.UI;
public class ChangeSprite : MonoBehaviour
{
[SerializeField] private Sprite newSprite;
void Start()
{
GetComponent<Image>().sprite = newSprite;
}
}ポイント
[SerializeField]を使うとprivateでもInspectorに表示できる- スクリプトはImageコンポーネントに直接アタッチする
GameObject.Find()で探すと処理が重いので避ける
方法2:Resourcesフォルダから読み込む
Resourcesフォルダに配置した画像をスクリプトから読み込む方法です。
準備
- Assets直下にResourcesフォルダを作成
- Resourcesフォルダ内にスプライト画像を配置
スクリプト
using UnityEngine;
using UnityEngine.UI;
public class LoadSpriteFromResources : MonoBehaviour
{
void Start()
{
Sprite loadedSprite = Resources.Load<Sprite>("profile");
GetComponent<Image>().sprite = loadedSprite;
}
}ファイル名から拡張子を除いた名前を指定します。
サブフォルダがある場合はResources.Load<Sprite>("Folder/FileName")のようにパスを指定します。
方法3:ネットワークから画像を取得する(RawImage)
外部URLから画像をダウンロードして表示する場合はRawImageを使います。
手順
- GameObject → UI → Raw Imageを作成
- 以下のスクリプトをRawImageにアタッチ
- 再生するとURLから画像を取得して表示

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System.Collections;
public class GetNetworkImage : MonoBehaviour
{
[SerializeField] private string url = "https://example.com/image.png";
private RawImage rawImage;
IEnumerator Start()
{
rawImage = GetComponent<RawImage>();
using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(url))
{
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
Texture2D texture = DownloadHandlerTexture.GetContent(request);
rawImage.texture = texture;
rawImage.SetNativeSize(); // 画像の元サイズで表示
}
else
{
Debug.LogError("画像の取得に失敗: " + request.error);
}
}
}
}コード解説
| コード | 説明 |
|---|---|
IEnumerator Start() | コルーチンを使用するための型指定 |
UnityWebRequestTexture.GetTexture() | テクスチャ取得用のリクエストを作成 |
yield return request.SendWebRequest() | ダウンロード完了まで待機 |
SetNativeSize() | 画像の元サイズでRawImageを表示 |
※WWWクラスは非推奨になったため、UnityWebRequestを使用しています。
ImageとRawImageの違い
| 項目 | Image | RawImage |
|---|---|---|
| 使用するテクスチャ | Sprite | Texture |
| Sprite Atlasとの連携 | ○ | × |
| ネットワーク画像 | △(変換が必要) | ○ |
| 描画パフォーマンス | 良い | やや劣る |
| 主な用途 | 通常のUI画像 | 動的に取得する画像 |
まとめ
| 方法 | 用途 |
|---|---|
| Inspector指定 | あらかじめ用意した画像を切り替える |
| Resources.Load | ビルドに含めた画像を動的に読み込む |
| UnityWebRequest + RawImage | 外部URLから画像を取得する |
通常のUI画像にはImageを使い、ネットワークから取得する画像にはRawImageを使うのが基本です。
