アニメやゲーム記事 プリキュア関連

notebook

IT UNITY

[UNITY]カードゲーム製作⑨

更新日:



YOUTUBEのHOWTO動画を参考にオリジナルのカードバトルをUNITYで製作するシリーズ第9回。

前回はプレイヤー本体およびエネミー本体への攻撃処理を実装しました。今回もひきつづき参考動画をもとにゲーム製作を進めていきます。

 

1.Result画面の表示

ゲームのルールとしてはプレイヤーまたはエネミーそれぞれの本体HPが0以下になった場合にはゲーム終了となります。ここではゲーム終了時にパネル表示してゲーム終了をユーザーに明示的に表示する機能を追加します。

 

1)実施内容

・Canvas上にあらたにResultPanelのパネルUIを追加。追加したパネル上にTextとButtonを配置

・「GameManager」クラスに「CheckHeroHp」メソッドを新規追加。同メソッドにプレイヤまたはエネミーのHPが0以下になった際には新規追加したパネルを表示する処理を実装

・新規追加したメソッドを「AttackTohero」メソッドの最後でCallする(本体攻撃処理の最後に終了判定)

 

2)終了時点の状態

もともとプレイヤーおよびエネミーのHPを30にしていましたが、本機能を確認するためにHPを1に設定して実行。本体攻撃によりHPが0以下になったため終了画面が表示されるようになりました。

 

2.コストの簡易実装

カードゲームでは「コスト」の概念があったりします。サンプルでも同様にコストの概念があります。コスト値の表示とコストに応じたカードのみ手札から場に出せるような処理を実装します。

 

1)実施内容

・「GameManager」クラスにHP同様にCOSTの定義および表示処理を追加

・「GameManager」クラスに「ReduceCost」メソッドを新規追加。コストの減算処理を実装。

・「CardMovement」クラスの「OnBeginDrag」メソッドでコスト値を比較しコスト不足時はカードを動かせないようにするためFLGをFALSEとし処理をReturnする

・「CardMovement」クラスの「OnDrag」「OnEndDrag」でFLGがFALSE時は処理させないためにReturnする

・「DropPlace」クラスの「OnDrop」メソッドで「ReduceCost」をCallする

 

2)終了時の状態

画面右のコスト値の初期値を1と設定し、1よりも大きいコストのカードは場に出せないようにし、場にカードを出した際にはコストの消費が行われるようになった。ただし移動できないカードを操作した際にもコストが消費されるバグが残っている状態。

 

3.コスト処理の修正

2項で実装した処理に対してコスト消費する対象カードを判定する。コスト消費は手札→場に出す際に発生するので手札→手札への移動および場に出ているカードではコスト消費しないように処理を実装する。

 

1)実施内容

・「CardModel」クラスに「isFieldCard」プロパティを新規追加(手札または場の判定用)

・「CardMovement」クラスの「BeginDrag」メソッドで操作可能カードを”手札またはコストが足りている”または”場のカードで操作可能枠付き”とする

・「DropPlace」クラスの「OnDrop」メソッドで「isFieldCard」がTRUE(場に出ている)場合はコスト消費を行わない。またFALSE時はコスト消費後にFLGをTRUEに変更する

・「DropPlace」クラスにTYPEを定義。UIの手札フィールドおよび場フィールドの属性を設定する

 

2)終了時点の状態

手札→手札への操作時はコスト消費が行われない。2ターン目でコストは0になっているが場に出ているカードの操作はコストは関係ないため操作が可能になっている。

 

参考サイト

本記事についてはほぼ「Unityゲームスタジオ スタジオしまづ」さまの動画を参考に作業しております。本記事を元に興味をもった方がおりましたら、YOUTUBEサイトのほうで「登録」されてはいかがでしょうか?

 

 


GoogleAdsense

<script data-ad-client="ca-pub-5019825310139846" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

GoogleAdsense

<script data-ad-client="ca-pub-5019825310139846" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

おすすめ記事

-IT, UNITY
-

Copyright© notebook , 2021 All Rights Reserved Powered by STINGER.