RAYSER進捗(20231004)
アイテムのインターフェース設計を引き続き進めていました
アイテムのインターフェースは責務が増えてしまいそうですが、役割を持たせたインターフェースを定義するなどして対応する方向で一旦考え中です。abstractで定義し直すのも検討しています。
using UnityEngine.UI;
namespace _RAYSER.Scripts.Item
{
/// <summary>
/// アイテム用インターフェース
/// </summary>
public interface IItem
{
/// <summary>
/// アイテム名
/// </summary>
string name { get; }
/// <summary>
/// アイテム説明
/// </summary>
string description { get; }
/// <summary>
/// アイテムアイコン
/// </summary>
Image iconImage { get; }
/// <summary>
/// アイテム種別
/// </summary>
ItemType itemType { get; }
}
}
サブウェポンインターフェースは破棄して、enumでアイテム種別を持たせるようにしてみました。
namespace _RAYSER.Scripts.Item
{
/// <summary>
/// アイテム種別
/// </summary>
public enum ItemType
{
/// <summary>
/// サブウェポン
/// </summary>
SubWeapon,
/// <summary>
/// ボム
/// </summary>
Bomb,
/// <summary>
/// シールド
/// </summary>
Shield,
}
}
カスタマイズでスコアと引き換えなので、商品という定義は少し違うかもですが、一応ショップのような感じなので一旦商品用インターフェースを定義して、カスタマイズで取引の発生するクラスに付与する目的のインターフェースを作ってみました
using _RAYSER.Scripts.Item;
namespace _RAYSER.Scripts.Commodity
{
/// <summary>
/// 商品用インターフェース
/// </summary>
public interface ICommodity
{
/// <summary>
/// 必要スコア
/// </summary>
int requiredScore { get; }
/// <summary>
/// スコア交換処理
/// </summary>
void ExchangeScore();
}
}
今回ご助言いただきましたゆみねこさん、やまだたいしさん、やまださんどうもありがとうございました。
この記事が気に入ったらサポートをしてみませんか?