Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@wttk05

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

More than 1 year has passed since last update.

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

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

カードには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型では内部にデータを持つことが出来ないため)ので困り果てていた状態です(;´д`)トホホ…

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

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

0
Help us understand the problem. What is going on with this article?
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
wttk05
インターネットでダラダラ生きてる人。 趣味がゲーム配信とかゲーム制作なので制作したゲームの アウトプットやポートフォリオを作っていきたいと思ってます。 いつか在宅で仕事がしたい。 お問い合わせはTwtterのDMまで @wttk05

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?