ScriptableObject でデータ管理をする【 Unity 】

Unity 内でキャラクターのデータ、設定を保存する事等によく使用される ScriptableObject について、作成と使用手順をまとめます。

作成手順

  1. 「ScriptableObject」を継承したスクリプトを作成します。
  2. メニューから作成可能にするため「[CreateAssetMenu()]」Attributeを追加します。
  3. 内容を書きます。
  4. 「 Project 」右クリックメニューから生成します。

作成例

コード

  • menuName = “メニュー表示場所/名前”
  • fileName = “生成時の名前”
Inspectorを手軽に見やすくする
[Header("Title")]

この Attribute を付加して見出しを付けることが出来ます。

インポートした画像(Sprite)の設定

2D画像の設定

画像を選択して設定

Inspector
  • TextureType:Sprite(2D&UI)

生成する

「 Project 」右クリックメニューから「 menuName 」として指定した場所から生成できます。

ScriptableObjectのProjectビューからの生成

「Setting」から「ItemName」と「Icon」を設定する

ScriptableObjectの設定

呼び出す

GameObjectに取り付けるコード

GameObjectの構造

  • 「 Hierarchy 」右クリックメニュー「UI」からゲームオブジェクトを組み立てます。
  • 「 Canvas 」にコンポーネントを取り付け設定します。
オブジェクトの構造
コンポーネントの設定

Canvasにスクリプトを貼り付け、
「 Image Obj 」:「Image」
「 Tmp Obj 」:「Text(TMP)」
を設定します。

結果

補足説明

TextMeshProで文字化け等する場合

フォントを変更していない場合は、日本語フォントを導入する必要があります。

エディタ拡張

EditorApplication.QueuePlayerLoopUpdate();

オブジェクトを跨いでおり、更新が描画にすぐ反映されなかったため追加。

参考

ScriptableObject:Unity

コメント

タイトルとURLをコピーしました