1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. Unity
  6. »
  7. 【Unity】Addressableを使って画像をスクリプトから表示する方法

【Unity】Addressableを使って画像をスクリプトから表示する方法

こんにちは。
私が執筆した小説「ELENA 人魚と過ごした時間」をベースとしたノベルゲームを現在Unityにて開発中です。
まだまだ、時間はかかりそうですが、完成したときはよろしくお願いいたします。

さて、Unityでゲーム開発をしていると、画像をスクリプトで読み込んだり、切り替えたりしたいときがあります。
そんなときは、「Addressable Assets System」を使ってみましょう。

今回はAddressable Assets Systemを使って、画像などのアセットを読み込む方法、そしてPCやMac、AndroidiPhoneなど用にビルドしたとき、うまく読み込まれない場合の対処法を紹介します。

目次
  1. Addressableパッケージのインストール
  2. アセットをUnityに読み込む
  3. Addressableを使うための設定
  4. 画像を表示するためのパネル(Panel)を追加
  5. スクリプトから画像を読み込む
  6. ビルドすると画像が表示されない現象の解決方法
  7. まとめ

Addressableパッケージのインストール

Addressable Assets Systemを使うには、「Addressables」というパッケージをインストールする必要があります。

ではまず、パッケージマネージャを開きましょう。
パッケージマネージャを開くには、「ウィンドウ(Window)」→「パッケージマネージャー(Package Manager)」をクリックします。

「パッケージ: プロジェクト内(Packages: In Project)」をクリックして、「Unity レジストリ(Unity Registry)」を選択します。

「Addressables」で検索します。

Addressablesが見つかったら、「インストール(Install)」をクリックします。

インストールが完了したら、パッケージマネージャは閉じてしまっても構いません。

アセットをUnityに読み込む

続いて、アセット(今回は画像)をUnityに読み込みます。
まずは画像を入れておくためのフォルダを作成しましょう。

Projectの「Assets」を選択します。

下の画像のように「+」をクリックし、「フォルダー(Folder)」を選びます。

フォルダ名は「Images」にしました。

作成したImagesフォルダをダブルクリックして開いたあと、使いたい画像をProjectにドラッグ&ドロップします。

これでUnityに画像を読み込むことができました。

Addressableを使うための設定

画像を、Addressable Assets Systemで扱うには、Unity上での設定が必要になります。

まず、さきほど読み込んだ画像を選択します。
するとインスペクター(Inspector)にさまざまな情報が表示されます。

「Addressable」にチェックを入れます。するとその画像までのパスが表示されます。

また、下の画像のように警告が表示される場合がありますが、Addressable Assets Systemの使い方とはちょっと違う話になってしまうので、今回は気にせずに進めていきます。

画像を表示するためのパネル(Panel)を追加

まず、画像を表示するために、今回はパネル(Panel)を作成しておきます。

ヒエラルキー(Hierarchy)の「+」をクリックし、「UI」→「パネル(Panel)」を選択します。

作ったパネル(Panel)の名前は「EventCG」にしました。Canvas、EventSystemは自動的に作成されます。

Canvasを選択すると、インスペクター(Inspector)にさまざまな情報が表示されます。

レンダーモード(Render Mode)を「スクリーンスペース – カメラ(Screen Space – Camera)」に、
レンダーカメラ(Render Camera)を「Main carera(Camera)」に、
UI Scale Mode(UI スケールモード)を「Scale With Screen Size(画面サイズに拡大)」に変更します。

スクリプトから画像を読み込む

続いて、スクリプトから画像を読み込みましょう。
まず、Assetsに「Scripts」フォルダーを作成します。

Scriptsフォルダをダブルクリックして開き、「+」をクリックして、「C# スクリプト(C# Script)」を選択します。

ファイル名は「EventCGManager」としました。

作成したEventCGManagerは、ヒエラルキー(Hierarchy)のEventCGにドラッグ&ドロップします。

EventCGManagerをダブルクリックし、エディタを開いたら、コードを以下のようにします。

using System.Collections;   //削除
using System.Collections.Generic;  //削除
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.AddressableAssets;

public class EventCGManager : MonoBehaviour
{
    Image _eventCG;
    // Start is called before the first frame update
    void Start()
    {
        Addressables.LoadAssetAsync<Sprite>( "Assets/Images/elena.jpg" ).Completed += sprite =>
        {
            _eventCG = GetComponent<Image>();
            _eventCG.sprite = Instantiate( sprite.Result );
        };
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

あとはEventCGのインスペクター(Inspector)でお好みの設定をし、再生ボタンをクリックします。
これで、とりあえずUnity上の画面には、画像を表示することができます。

ビルドすると画像が表示されない現象の解決方法

さて、これでUnity上で画像が表示されるようになったのですが、実はこの状態で、PCやMac、AndroidiPhoneなど用にビルドすると、画像が表示されません。
というのもAddressables Asset Systemでは、アプリをビルドする前に、コンテンツを手動でビルドしなければならないのです。

では、「ウィンドウ(Window)」→「アセット管理(Asset Management)」→「Addressables」→「グループ(Groups)」を開きます。

さらに「Build」→「New Build」→「Default Build Script」をクリックします。

もしUnsaved Scenesというアラートが表示されたら、「Save and Continue」をクリックします。

これで、ゲームをビルドして動かしたときも、画像がちゃんと読み込まれるようになります。

まとめ

Unityでのゲームを開発で、画像などのアセットをスクリプトから読み込みたいと思ったときは、Addressable Assets Systemを使ってみましょう。
しかし、コンテンツを手動でビルドしないと、PC、Mac、スマホ用などにビルドしたときにうまく読み込まれませんので、注意が必要です。

そんなわけで、今回はAddressable Assets Systemの使い方を紹介しました。
参考になれば幸いです。

スポンサードリンク

関連コンテンツ

オススメ記事

Windows10にPythonをインストールする方法

みなさんこんにちは。@It_is_Rです。今回はWindows10にPythonをインストールする方法を紹介します。 Pythonのインストーラをダウンロード では、Python

Pug

PugでPHPが使える! gulpfile.jsをちょっと工夫するだけだよ

HTMLを書くときPugを使うととても便利なのですが、PHPを書きたいと思ったときは少し工夫が必要になります。 PugでPHPを書くためのプラグインを使う方法もありますが、使うプラグインが増えれば増

Scratchでピアノを 作ってみよう!

Scratchでピアノ鍵盤を作って音を鳴らそう! 小学生からのプログラミング入門

今回も、小学生からのScratch《スクラッチ》入門、はじめていきます。 前回、「Scratchでシューティングゲームを作ろう! 小学生からのプログラミング入門」では、Scratchを使ってシ

【Unity 2D】画像のアスペクト比を固定して画面全体に表示する方法

こんにちは。私が執筆した小説「ELENA 人魚と過ごした時間」をベースとしたノベルゲームを現在Unityにて開発中です。 さて、今回はUnity2Dでのゲーム開発において、アスペクト比を固定し

.zshrcを分割して管理してみよう!

zshの設定ファイル、.zshrcですが、いろんなカスタマイズをしていると、だんだんとどこになにが書いてあったのか、分からなくなってしまいます。 そこで今回は、.zshrcファイルを分割して、

Eclipseを日本語化する方法(Pleiadesプラグインの使い方)

Eclipseの公式サイト(https://www.eclipse.org/)からダウンロードしたものは、表示が英語になっています。今回は、公式サイトからダウンロードしたEclipseを、Pleia

FC2でブログを始めよう!誰でも簡単にできるブログの作り方

FC2ブログは、FC2が運営する無料でブログを開設できるサービスです。(有料版もあります) また、FC2のサービスには、動画、ライブ配信、アフィリエイト、小説など、様々なものがあります。 今回

【Xcode】Storyboardを使ってMacアプリ開発に挑戦。

こんにちは。@It_is_Rでございます。 さて、今回はStoryboardを使ってのmacOS用のアプリ開発の基本として、ウィンドウに文字の表示させてみたいと思います。開発環境はMac OS

Unityのダウンロードとインストールの方法【Mac】

UnityはUnity Technologiesのゲームエンジンです。2D、3Dゲーム両方に対応しており、大手企業も使用してゲームを開発している、とても高機能なツールです。 Unityにはいく

【Bootstrap 4】パンくずリスト(Breadcrumb)を作ってみよう!

Bootstrap4の使い方、第4回目となりました。 サイトを作っていると必然的に必要になるのがパンくずリストです。 パンくずリストは、サイト訪問者が今どのページにいるのかということを分かりやすく示

コメントを残す(コメントは承認後に反映されます)

メールアドレスが公開されることはありません。




オリジナルゲーム.com