Unity 内でキャラクターのデータ、設定を保存する事等によく使用される ScriptableObject について、作成と使用手順をまとめます。
目次
作成手順
- 「ScriptableObject」を継承したスクリプトを作成します。
- メニューから作成可能にするため「[CreateAssetMenu()]」Attributeを追加します。
- 内容を書きます。
- 「 Project 」右クリックメニューから生成します。
作成例
コード
- menuName = “メニュー表示場所/名前”
- fileName = “生成時の名前”
Inspectorを手軽に見やすくする
[Header("Title")]
この Attribute を付加して見出しを付けることが出来ます。
インポートした画像(Sprite)の設定
![2D画像の設定](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/image-59.png)
画像を選択して設定
生成する
「 Project 」右クリックメニューから「 menuName 」として指定した場所から生成できます。
![ScriptableObjectのProjectビューからの生成](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/image-57.png)
「Setting」から「ItemName」と「Icon」を設定する
![ScriptableObjectの設定](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/image-58.png)
呼び出す
GameObjectに取り付けるコード
GameObjectの構造
- 「 Hierarchy 」右クリックメニュー「UI」からゲームオブジェクトを組み立てます。
- 「 Canvas 」にコンポーネントを取り付け設定します。
![オブジェクトの構造](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/image-62.png)
![コンポーネントの設定](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/image-63.png)
Canvasにスクリプトを貼り付け、
「 Image Obj 」:「Image」
「 Tmp Obj 」:「Text(TMP)」
を設定します。
![結果](https://hi-network.sakura.ne.jp/wp/wp-content/uploads/2020/04/SO-1023x410.gif)
補足説明
TextMeshProで文字化け等する場合
フォントを変更していない場合は、日本語フォントを導入する必要があります。
エディタ拡張
EditorApplication.QueuePlayerLoopUpdate();
オブジェクトを跨いでおり、更新が描画にすぐ反映されなかったため追加。
コメント