見出し画像

短編RPG制作(Unity2D)【第21回】メニューの作成

今回から、メニュー画面を作っていきたいと思います。
ステータス表示とアイテムを格納するインベントリの構築を目指します。


ドロップアイテムの設定

インベントリを作る前に、そこに格納するべきアイテムを作成します。

ScriptableObject

まずはアイテムのデータ型を定義します。いくつか調べて、どのサイトでもScriptableObjectクラスを継承して定義しているのでそれに倣ってみます。

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

[CreateAssetMenu(fileName = "Item", menuName = "ScriptableObjects/ItemData")]
public class ItemData : ScriptableObject
{
    [SerializeField] private string itemName;
    [SerializeField] private string itemType;
    [SerializeField] private string itemId;
    [SerializeField] private Sprite itemIcon;

    public string GetItemName()
    {
        return itemName;
    }

    public string GetItemType() 
    { 
        return itemType;
    }

    public string GetItemId()
    {
        return itemId;
    }

    public Sprite GetItemIcon()
    {
        return itemIcon;
    }
}

アイテムの型となるスクリプト「ItemData」を作成しました。
アイテムの名前、タイプ、ID、画像をセットできるようにして、それを呼び出せるようにしています。(項目は適当に思いついたものを付けました。)
また、「CreateAssetMenu」を記述することで、Assetフォルダ内で右クリックして呼び出すことができるようになりました。

右クリックで呼び出せる

右クリックのショートカットに要素を追加することもできるんですね……。ここって不可侵領域みたいなものだと思っていました。まだまだ勉強することは多そうです。

アイテムの作成

試しに1つ作ってみることにしました。

アイテム作成

羽根の画像を付けて、名前を「Item1」、タイプを「Test」、IDを「1」としています。仮作成感が満載。

まとめ

今日は短めで終わろうと思います。(最近残業長くて時間が……。)
ScriptableObjectでアイテムの管理がしやすくなるようですが、何がおすすめポイントなのかまだはっきり分かっていません。使いながら理解していこうと思います。
次回は、レイアウトを考えて中身にとりかかりたいです。

この記事が気に入ったらサポートをしてみませんか?