インスペクターを確認して頂くと、itemDatasList の Size が 0 になっていると思います。
これは itemDatasList というスクリプタブル・オブジェクトが管理しているListの数です。
つまり、登録しているアイテムの情報数です。現在はまだアイテムの情報がないため、Listも 0 の状態です。
この値を登録するアイテムの数に設定してみてください(今回は3を設定しています)
画像のようにElementの情報が0〜2で追加されます。
Element とは
List の要素(中身)のことです。
そのため、
Element 1つが ItemData 1つになります。Element の番号は 0 から始まります。これは
List 内での要素番号(index)も表しています。
以上のことから、
1つの Element には1つの ItemData クラスの内容を設定できるようになっています。
このとき、ItemData クラスの上に [Serializable] 属性を宣言しているので、ItemData クラスの内容がインスペクターに表示されています。
[Serializable] 属性を活用することによって、インスペクターからキャラ用の情報を1体ずつ、ItemData 単位で登録出来るようになっています。
一番上にあるElement 0 の部分をクリックしてみてください。閉じられていた部分が開いて、情報を登録できる部分が開きます。
こちらにアイテムの情報を1つずつ登録してください。
ItemName 変数は文字列でアイテムの名前が登録できます。
ItemNo 変数は通し番号になりますので、int 型です。Element の番号と同じように、0 から順番に採番してください。
efficacyValue 変数は、アイテムを取得した時の効果値です。
例えば回復アイテムであれば、回復する量を設定します。
攻撃力アップや速度アップなどは、増加量を、ペナルティのアイテムであれば減少量を設定します。
float 型ですので、小数点での指定が必要な値も設定できます。
duration 変数は、アイテムの効果時間です。即時に回復するアイテムであれば 0 です。一定時間効果があるアイテムは、この値を設定します。
こちらも float 型ですので、小数点での指定が必要な値も設定できます。
effectPrefab 変数には、アイテムを取得した際のエフェクト用のプレファブをアサインして登録します。
ItemPrefab にはアイテムのプレファブをアサインして登録します。
インスペクター画像
なお、ItemData クラス内の
一番最初に記述した変数が Element の部分に表示されますので、
string 型を最初に設定することで Element の表示が
文字列表記に変わります。通常は int 型です。ここは好みで使い分けてください。
(string 型のときは各 Element の初期値は数字が入らずに空白になっています)
これでスクリプタブル・オブジェクトへのアイテムの情報は登録できました。変更も自由にできますので、適宜調整してください。
またアイテムの数を増減する場合には Size の値を変更してもらうと Element の値がそれに合わせて変化し、追加で登録出来るようになります。
各数値やエフェクトのプレファブは任意ですが、ItemNo の値だけは異なる番号で設定してください。できれば 0 から連番での採番が理想です。
この番号はアイテムの個体番号として利用する可能性がありますので、同じ番号を重複して設定してしまうと、同じ番号のアイテムが複数存在することになり、
番号によってアイテムを特定することが出来なくなります。