Help us understand the problem. What is going on with this article?

前回のゲーム制作に置いての補足#ゲーム制作2.5

前回の記事の補足情報になります。

カードはどんな役割の要素なのか

カードにはHPやAT、画像といった基本的な情報を保有していて(下記通り)

保有データ

CardModel.cs
    public Sprite icon;
    public new string name;
    public int hp;
    public int at;
    public bool isDead;

CardModelを生成した時に呼ばれる関数(コンストラクタ?)
事前に用意したScriptableObjectの情報を読み込むものになっています。

CardModel.cs
    //Entityからカードモデルにデータを送る
    public CardModel(int cardID)
    {
        CardEntity cardEntity = Resources.Load<CardEntity>("CardEntityList/Card"+cardID);
        icon = cardEntity.icon;
        name = cardEntity.name;
        hp = cardEntity.hp;
        at = cardEntity.at;
        isDead = false;
    }

CardViewで、モデルへのデータの受け渡しと描画を行っていて

CardView.cs
    public void Show(CardModel cardModel)
    {
        // カードデータの受け渡し+描画
        iconImage.sprite = cardModel.icon;
        hpText.text = cardModel.hp.ToString();
        atText.text = cardModel.at.ToString();   
    }

CardControllerでModelを生成してViewを介して描画しているといった形を取っています。

CardController.cs
    public void Init(int cardID)
    {
        model = new CardModel(cardID);// 生成
        view.Show(model);// 反映
    }

実際にカードをInstantiateする時はこのように記述しています。

GameManager.cs
        //生成
        CardController card = Instantiate(cardPrehab, position, false);
        card.Init(cardID);

※CardPrehab→カードの型のPrefab
SnapCrab_NoName_2020-2-27_19-16-52_No-00.jpg
※Position→親要素にしたいPanel

役割としては、対戦にあたって体力の管理をしたり戦闘で勝利した時攻撃力分ダメージを与えると言ったことがあります。

どういうデータをどのように渡そうとして上手くいってないのか

結論から言うとカードの作りをあまり変更せずCardControllerの情報全てを受け渡ししたいと考えています。ですが現状はCardControllerの型でPhotonNetwork.Instantiateをすることが出来ない(CardPrehabには空の型しかない+GameObject型では内部にデータを持つことが出来ないため)ので困り果てていた状態です(;´д`)トホホ…

ターン制なので常にデータをたくさん送受信する予定はなく
多少多くデータを保有していても問題ないかと思っています。(浅はかだったら申し訳ないです)

以上です。ありがとうございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした