気ままなUnityエンジニアブログ

新米Unityエンジニアが送る解説アウトプットブログです。Twitter : @UjinUnity

MENU

【Unity ゲーム制作】神経衰弱ゲームを作ろう!〜その6 (カードの裏面画像と切り替え処理 )

スポンサーリンク

カードの裏面処理と切り替え処理の実装です

f:id:Wojtek:20190925122228g:plain

裏面用のカードをUnityに導入しよう!

前回 ( その5) にてフライングしていましたが、裏面表記用の画像をUnityに導入しましょう。

UnityのAssets/Resources/Imageフォルダ内に画像を D&D してください。
その後、画像のTypeをSpriteにすれば導入完了です。

Cardオブジェクトに裏面画像を読み込もう!

ではソースコードに記述しましょう。
Card.csを変更します。

Cardオブジェクトの生成関数部分にて、今までは読み込んだ表面のカードをそのまま読み込んでいましたが、
今回はそれを修正し、初回は必ず「裏面画像」を読み込むようにしましょう!。

// カード情報
    private CardData mData;

    // カードの設定
    public void Set (CardData data) {

        // カード情報を設定
        this.mData = data;

        // IDを設定する
        this.Id = data.Id;

        // 表示する画像を設定する
        // 初回は全て裏面表示とする
       this.CardImage.sprite = Resources.Load<Sprite> ("Image/card_back");

        // 選択判定フラグを初期化する
        this.mIsSelected = false;

    }

ポイントは this.CardImage.sprite = Resources.Load ("Image/card_back");の部分です。
先ほど読み込んだ裏面画像をここで反映しておきます。

そして、もう一つのポイントとして private CardData mData があります。
こちらは カード情報クラスのプライベート変数です。

mData にCardData情報を保存しておきます。

裏面表記になっているか確認

Gameを起動しましょう。
画像のように読み込んだ裏面画像が表示されていれば成功です!。

f:id:Wojtek:20190927011021p:plain

カードをクリックしたら表面が表示されるようにしよう!

いよいよ神経衰弱っぽくなってきました。

神経衰弱と言えば「裏面カードを選んで、同じカードを当てる」ゲームですよね!
そのためには 裏面表記のカードを選んだら、表面が表記される」必要があります。

前回記載した、OnClick()関数に処理を追記しましょう!

    /// <summary>
    /// 選択された時の処理
    /// </summary>
    public void OnClick () {

        // カードが表面になっていた場合は無効
        if (this.mIsSelected) {
            return;
        }

        Debug.Log ("OnClick");

        // 選択判定フラグを有効にする
        this.mIsSelected = true;

        // カードを表面にする
        this.CardImage.sprite = this.mData.ImgSprite;
    }

this.CardImage.sprite = this.mData.ImgSprite; によって、先ほど保存したmDataのImgSpriteに画像表記を切り替えています。

これで裏面表示のカードを選択したら、表面カードが表記されるようになりました!。

実際に動作を確認しよう!


f:id:Wojtek:20190927011500p:plain

Gameを起動して、記事最初のGIFや画像のように裏面をクリックしたら表面画像が表示されれば成功です!

次はいよいよ神経衰弱のゲーム部分、カードを2枚選択して、一緒だったら・・・!? の処理を作成して行きましょう!