Skip to content

テンプレのコードから学んだこと

Elise edited this page Jul 26, 2024 · 3 revisions

ここにテンプレのコードから学んだことを書く

  • Common/Dataフォルダには初期デッキ枚数・初期手札の枚数・毎ターンのドロー回数など、ゲーム全体の設定に関わるような変数が設定されている。 →今回のゲームだと、ボスに突入するまでの制限時間・(もし実装するのであれば)ゲーム全体の設定レベルなどをここに記録すると思われる。

サンプルの構造解析

サンプルはカードゲームです

App/Scripts/Common/Data/..

カードのデータ(カードの名前、コスト、Hp、レアタイプ、スプライト)などが入っている

それ以外のバトルの設定(初めて何枚のデッキで始めるかなど)とかコストタイプ、レアタイプなどを enum で管理している

でもなんかクラス内にメソッドはなかった

全部他のクラスでデータいじるらしい(Datastoreかな)

App/Scripts/Battle/...

ここはカードゲームでバトルシーン関連のスクリプトをまとめたフォルダー

App/Scripts/Battle/Data/...

ここには、バトルにだけ使うデータが入っているはず

このゲームにはバトルエリア(Battle Area)というカードを置くフィールドがある。下はそこに関連するスクリプト

BattleAreaCookieCard.cs

using App.Common.Data.MasterData;

namespace App.Battle.Data
{
    [System.Serializable]
    public sealed class BattleAreaCookieCard
    {
        // ここで新しく定義された Id
        public string Id { get; }
        // App/Scripts/Common/Data/MasterData/CardMasterData.cs に入っている
        public CardMasterData CardMasterData { get; }
        // App/Scripts/Battle/Data/CardState.cs に入っている
        public CardState CardState { get; private set; }

        // コンストラクタ
        public BattleAreaCookieCard(string id, CardMasterData cardMasterData, CardState cardState)
        {
            Id = id;
            CardMasterData = cardMasterData;
            CardState = cardState;
        }

        // ステートを設定する関数
        public void SetState(CardState cardState)
        {
            CardState = cardState;
        }

        // たぶんデバッグ用
        public override string ToString()
        {
            return $"({Id})[{CardMasterData.CardNumber}]<{CardMasterData.Name}>";
        }
    }
}

CardState.cs

namespace App.Battle.Data
{
    public enum CardState
    {
        Active,
        Rest,
        FaceDown,
    }
}

確かにカードの状態はバトルしか使わないからここにある

App/Scripts/Battle/DataStores/...

Clone this wiki locally