Unityでゲームを作っていると、こんなことをやりたくなる瞬間はありませんか?
- ボタンを押したらキャラクターの画像を切り替えたい
- スコアが一定以上になったら背景を変更したい
- 設定画面でアイコンをユーザーが変更できるようにしたい
この記事では、Unity初心者の方でも理解できるように「画像切り替えの基本」を、ステップごとにわかりやすく解説します。
画像をスクリプトから変更する方法はいくつかある
Unityでは、UIの画像やゲームオブジェクトの見た目を変える方法が複数あります。大きく分けると次のようなパターンがあります。
- UIのImageコンポーネントのSpriteを切り替える(最も基本的な方法)
- 複数の画像を配列にして順番に切り替える(ボタンでスライドショーなど)
- オブジェクトのアクティブ切り替えで画像を見せ替える
それぞれの方法を「初心者向けの解説」+「サンプルコード」で紹介していきます。
基本中の基本:Image.spriteを使った差し替え
UIのImageコンポーネントを持つオブジェクトの画像は、Image.sprite
に新しいSpriteを代入するだけで差し替えられます。
以下のコードは、スペースキーが押された時に、画像をnewSpriteに切り替える例です。
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public Sprite newSprite;
private Image image;
void Start()
{
// SpriteRendererコンポーネントを取得します
image = GetComponent<Image>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
// 画像を切り替えます
image.sprite = newSprite;
}
}
}
このスクリプトを画像のゲームオブジェクトにアタッチして、newSpriteに切り替えたい画像をドラッグ&ドロップします。

スペースキーを押すと部屋の画像に切り替わるようになりました。

ポイント
image
に差し替えたい対象のImageコンポーネントを割り当てるnewSprite
に差し替え先のSpriteを登録しておくimage.sprite = newSprite;
と書くだけで切り替え完了
初心者の方でも、まずはこの方法から覚えるのがおすすめです。
複数の画像を順番に差し替える(スライドショー風)
ゲーム中に「ボタンを押すたびに次の画像へ切り替えたい」ことも多いですよね。
その場合は、画像を配列にまとめて、順番に取り出す方法が便利です。
using UnityEngine;
using UnityEngine.UI;
public class ChangeScript : MonoBehaviour
{
[SerializeField] Image image;
[SerializeField] Sprite[] sprites;
int index = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
index = (index + 1) % sprites.Length;
image.sprite = sprites[index];
image.SetNativeSize(); // 元サイズにリセット
}
}
}
こちらのスクリプトを適当なオブジェクトに追加して、変更したいImageオブジェクトと、画像を設定します。

実行すると、スペースを押すたびに画像が切り替わります。ちなみにここで使われている画像はChatGPTで生成しました。
活用例
- キャラクターの表情を差し替える
- スライドショーを作る
- 複数のアイコンを切り替える
ゲームオブジェクトのアクティブを切り替える

オブジェクトの取得が面倒くさい!
切り替える画像サイズが同じ場合は、簡単な方法があります。
Imageコンポーネントをいちいち取得するのが面倒な人もいると思います。
画像のゲームオブジェクトを複数用意しておいて、アクティブ状態を切り替えることで画像を変更する方法です。
まず、Imageを複数用意しておきます。Hierarchyの下にあるほど、先頭に表示されます。

それぞれのImageに別々の画像を設定しておきます。
試しに一番下の画像を非表示にすると、一つ上の画像が見えるようになります。
Image(2)を非表示にすると、Image(1)が前面に表示されます。

このようにゲームオブジェクトのアクティブを切り替えることで、画像が切り替わって見えます。
👉 向いている場面
- 小規模なプロジェクト
- 画像の数が少ないとき
👉 デメリット
- オブジェクトが増えると管理が大変になる
まとめ:初心者はまず「Image.spriteの差し替え」から!
Unityで画像を差し替える方法はたくさんありますが、初心者はまず「Image.spriteを使った差し替え」をマスターしましょう。
ただ、面倒くさがりな私はアクティブ/非アクティブで画像を切り替えていることが多いです。
画像のフェードインなどアニメーションを作成したい場合は、DOTweenを使うのが便利です。