見出し画像

RAYSER進捗(20231003)

今日はカスタマイズ(ショップ)のインターフェースなどの設計をしていました。(あまり時間はかけられなかったので、仮で作ってます)

アイテム用インターフェース
こちらはカスタマイズの商品の起点となるインターフェースです。アイテムの名前、説明文、イメージなどを持たせる想定です。それ以外の武器やボムなどの性質を持たせる場合は別インターフェースとして定義しようと考えています。

using UnityEngine.UI;

namespace _RAYSER.Scripts.Item
{
    /// <summary>
    /// アイテム用インターフェース
    /// </summary>
    public interface IItem
    {
        string name { get; }
        string description { get; }
        Image image { get; }
    }
}

商品用インターフェース
商品用のインターフェースです。この下層は武器以外のボムやバリアの強化なども想定しているのでアイテムをプロパティで持たせようと考えています。nameはアイテム側で持たせるか商品側で持たせるかはまだ考案中です。

using _RAYSER.Scripts.Item;

namespace _RAYSER.Scripts.Commodity
{
    /// <summary>
    /// 商品用インターフェース
    /// </summary>
    public interface ICommodity
    {
        string name { get; }
        int price { get; }
        string description { get; }
        IItem item { get; }
    }
}

サブウェポン用インターフェース
商品の性質を決めたりするためにサブウェポンのインターフェースも別途設けてみようと考えています。商品として購入する想定なのでアイテムインターフェースを継承する想定です。プレイヤーのサブウェポン購入リストへの格納などを想定してインターフェースを分けています。中のメソッドは今のところまだ考えていません。

using _RAYSER.Scripts.Item;

namespace _RAYSER.Scripts.Weapon
{
    /// <summary>
    /// サブウェポン用インターフェース
    /// </summary>
    public interface ISubWeapon : IItem
    {

    }
}


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