Unity|カードゲームの作成(ローグライク)。Part1.カードの生成

当ページのリンクには広告が含まれています。

Unity2Dでカードゲームを作成していきます。完成形のゲームを作成となると、かなり長くなるので中心となる要素を作成後、機能を追加していく形で進めてしていきます。

はじめに

カードゲームには多くの種類があります。下記では「カイジのEカード風ゲーム(じゃんけん)」を作成しました。今回はもう少しカードゲームっぽいのを作成してみます。

カードゲーム

「カードを配る(カードに攻撃力あり)」→「カードを選択して攻撃」を基本軸で作成してきます。一人用のシンプルなカードゲームです。

ゲーム画面のイメージは下記です。「カードはコストと攻撃力」、「フルーツはライフ」があり、「カードを利用してフルーツを収穫する」というシンプルなものです。

Unityのヴァージョン

今回はUnity 6000.5.2f1のヴァージョンで作成。プロジェクト名は「cardgame」としています(プロジェクト名は分かりやすければ何でもOK)。

利用する画像

下記の画像をカードとして利用していきます。Inkscapeで簡単に作成したものです。

ゲーム作成開始

ここからゲームを作成していきます。まずはカードを作成します。

カードの作成

Assetsフォルダ内にSpritesフォルダを作成して、上記のカード画像を入れます。

Hierarchyで「CreateEmpty」を選択して空オブジェクトを追加、名前を「CardPrefab」に変更。配下に「UI(Canvas)」から「Canvas」を追加します。

Canvasの配下に「UI(Canvas)」→「Image」、「Text-TextMeshPro」を2つ追加します。それぞれ名前を「CardImage」、「Cost」、「Damage」に変更します。

CardImageのWidth、Height、SourceImageを変更。Textも仮で変更しておきます。

Canvasを調整して下記の様に、ゲーム画面にカードを表示出来たらOK。

仮スクリプトを作成しておきます。スクリプト名は「Card」

using TMPro;
using UnityEngine;

public class Card : MonoBehaviour
{

    [SerializeField] private TMP_Text cost;
    [SerializeField] private TMP_Text damage;

}

CardPrefabオブジェクトにスクリプトをアタッチします。

カードオブジェクトの仮組が出来たので、プレハブ化します。

「CreateEmpty」から空オブジェクトを追加、名前を「HandManager」にします。

下記スクリプトを新規で作成します。Instantiateでカードを生成しています。

using UnityEngine;

public class HandManager : MonoBehaviour
{
    [SerializeField] private GameObject cardPrefab;

    private void Start()
    {
        Instantiate(cardPrefab, transform.position, Quaternion.identity, transform);
    }

}

HandManagerにスクリプトをアタッチして、パラメータにカードのプレハブをセット。実行してカードが生成されればOKです。

タイトルとURLをコピーしました