LoginSignup
3
3

More than 1 year has passed since last update.

UnityでScriptableObjectからかんたんにインベントリを作る#2

Posted at

ScriptableObjectを使ってみるその2

作ったデータを管理する

前回はItemというプログラムを作って、unityでたくさんアイテムを作れるようにしました。
では、そのたくさん作ったデータはどのように管理するのが効率が良いのでしょうか?

データベースを作る

今回は、そのたくさん作ったアイテムをまとめあげるデータベースを作ります。

データベースとは、たくさんのデータが入っている棚のようなものだと思ってください。

次のプログラムを作ります。
今回もScriptableObjectなので、どのオブジェクトにつけなくても平気です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName ="ItemDataBase",menuName ="CreateItemDataBase")]
public class ItemDataBase : ScriptableObject
{
    [SerializeField]
    private List<Item> itemlists;

    public List<Item> GetItemLists(){
        return itemlists;
    }

}

今回も一行目に注目してください。

public class ItemDataBase : ScriptableObject

MonoBehaviourScriptableObjectに書き換えられましたか?

前回にも出てきた↓これはなんでしょうか。前回はスルーしていました。

[CreateAssetMenu(fileName ="ItemDataBase",menuName ="CreateItemDataBase")]

これは、Unity上のProjectやAssetメニュー欄から、新しくItemDataBaseを作れるようにしたものです。

実際にUnityでprojectの+を押してみましょう。
CreateItemDataBaseが出ていれば成功です。
スクリーンショット 2022-01-14 16.47.15.png

選択するとAssets内にItemDataBaseが現れます。
Itemlistsの欄に作ったアイテムの数を入れてみましょう。
欄が増えるはずです。そこに実際に前に作ったアイテムを入れてみましょう。↓こんな感じ
スクリーンショット 2022-01-14 16.50.14.png

プログラムの説明をします。

[SerializeField]
private List<Item> itemlists;

これでUnity上で数字を入力することができるようになり、数字に応じて欄が増えるようになります。
そこに、Itemが入れられるようになります。

その下の関数はまた今度。

次回は実際にコンソールに表示できるようにしてみます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3