これからカードゲームの作り方を解説して行きたいと思います。ここでは準備編としてカードのデータやプレファブの作成などをメインにまとめます。ゲーム開発本編は別の項目から開始します。(本編では準備編で作ったものは理解した前提で話を勧めますので、わからなくなったら準備編と行ったり来たりしながら学習進めてみてください)
目次
カード用のモデルやライブラリのクラス作成
モデルって何?って言われたらデータ!って答えるんですが、じゃあ最初からデータで良くない?と思うかもしれません。が!ここは、どうかこのワタナベの名付けを聞き入れて頂きたい。
CardModel.cs
CardModelは1枚のカードに対する情報を詰め合わせたもの。MonoBehaviourとかが消えたりしているのにご注目ください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "Card Model", menuName = "ScriptableObject/Card Model")]
public class CardModel : ScriptableObject
{
public int cardId;
public string cardName;
public int cost;
public int power;
public string cardDescription;
public void SetCardModel(int _iCardId, string _cardName, int _iCost, int _iPower, string _cardDesc)
{
cardId = _iCardId;
cardName = _cardName;
cost = _iCost;
power = _iPower;
cardDescription = _cardDesc;
}
}
CardLibrary.cs
カードライブラリはゲーム内で利用されるカードを格納するためのクラスです。カードのデータは後に作成するスクリプタブルオブジェクトをセットすることで利用出来ます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CardLibrary : MonoBehaviour
{
public static CardLibrary Instance;
public List<CardModel> cardList = new List<CardModel>();
private void Awake()
{
Instance = this;
}
}
カードモデルを利用してスクリプタブルオブジェクトを作成
2つのスクリプトがうまく作れたら、カード用のスクリプタブルオブジェクトを作ってみましょう。プロジェクトビューのなにもないところで右クリックを行うとCreate>ScriptableObject>Card Modelからカードのスクリプタブルオブジェクトを作ることが出来ます。
スクリプタブルオブジェクトが作られたら、カードのデータっぽいものを3つぐらい作ってみましょう。
カードのIDと名前をユニーク(他と被らない)にして、困ればあとは同じでも大丈夫です。
カードライブラリにセット
シーン内に空のゲームオブジェクトを準備。ゲームオブジェクトにCardLibraryスクリプトをアタッチします。
インスペクターにCardListがありますので、そちらに作ったカードのスクリプタブルオブジェクトをセットしてください。
コメント