【Unity】ScriptableObjectの使い方

unity

ScriptableObjectとは何でしょうか。

Unityのマニュアルには以下の記載があります。

  • Saving and storing data during an Editor session
  • Saving data as an Asset in your Project to use at run time

https://docs.unity3d.com/Manual/class-ScriptableObject.html

今回は2つ目のアセットとしてデータを保存しておいて実行時に利用する目的でコードを書いてみました。

ゲームのアイテムをアセットとして保存しておいてゲーム実行時に参照するようにしたいと思います。

そのための2つのステップは以下の通り。

  1. アセットファイル(.asset)を作成するコード
  2. アセットファイルの中身を参照して生成するコード

まずは、アセットファイルの作成方法から見ていきましょう。

アセットファイルの作成

ScritableObjectを継承したクラスを作ります。

上記のコードをAssetsフォルダの中に保存します。

Assetメニューで選択するとアセットファイルが生成されます。

インスペクタからアイテムをセットします。

(インスペクタから設定できるようにItemクラスはSubscritableにしています。)

これでアイテムのアセット(データベース)が出来上がりました。

アセットファイルの中身を参照する

データベースができたので、データベースからアイテムを検索して引っ張ってくるコードを書いていきます。

シングルトンを使って何処からでも呼び出せるようしました。

空のオブジェクトを作成してスクリプトをアタッチします。

上で作ったアセットファイルをセットします。

これで呼び出したいタイミングでアイテムを生成すればOKです。

おわり。

参考

https://docs.unity3d.com/Manual/class-ScriptableObject.html

ABOUTこの記事をかいた人

のっくん

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog