【Unity】ゲーム中にスクリプトから画像を変更する方法

はじめに

スクリプトから画像を差し替える方法を紹介します。2Dの脱出ゲームでは頻繁に画像を切り替える必要が出てくるので、参考にしてみてください。

オーソドックスな方法と、もっと簡単にした方法を紹介します。

画像の変更方法

Imageコンポーネントを取得し、画像を切り替えます。

以下のコードは、スペースキーが押された時に、画像を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に切り替えたい画像をドラッグ&ドロップします。

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

方法2 ゲームオブジェクトのアクティブを切り替える

オブジェクトの取得が面倒くさい!

切り替える画像サイズが同じ場合は、簡単な方法があります。

Imageコンポーネントをいちいち取得するのが面倒な人もいると思います。

画像のゲームオブジェクトを複数用意しておいて、アクティブ状態を切り替えることで画像を変更する方法です。

まず、Imageを複数用意しておきます。Hierarchyの下にあるほど、先頭に表示されます。

それぞれのImageに別々の画像を設定しておきます。

試しに一番下の画像を非表示にすると、一つ上の画像が見えるようになります。

Image(2)を非表示にすると、Image(1)が前面に表示されます。

このようにゲームオブジェクトのアクティブを切り替えることで、画像が切り替わって見えます。

おわりに

SpriteRendere.spriteプロパティを変更するというのが一般的ですが、面倒くさがりな私はアクティブ/非アクティブで画像を切り替えていることが多いです。

ゲーム作りがゼロから学べるおすすめ動画はこちら
UIUnity
umiをフォローする
umi studio blog
タイトルとURLをコピーしました