独習 Unity アプリ開発

独習でスマフォ向けアプリ開発を勉強中

Unity で スイカ風ゲームを作ってみる#5

Unityでゲームを作る

Unity でスイカ風ゲームを作る!

 Unity Version 2022.3.16

 

前回は、InputSystem を使ったマウスポジションの検出方法とPolygonCollider を使ったField オブジェクトの実現方法について確認した。今回は、スイカ風ゲームの全体のクラス構造について整理する。

 

クラスの構成としては、プレーヤー、フルーツ、フィールド、Next、得点、UI画面を管理するクラスとそれぞれに指示を出すゲームコントロールクラスで構成する。ゲームコントロールクラスから各クラスの依存は許すが、それ以外の各クラス間、各クラスからのゲームコントロールクラスへの逆方向への依存は"なるべく"しないように設計するというルールで進める。

 

UIコントロール


UI の表示/非表示の制御方法は、テトリス風ゲームの時と同様にUI Panel GameObject のSetActive を使う。UIControl クラスが各画面のインスタンスを保持しており、SwitchUI メソッドを経由して画面の制御を行う構造とする。

 

UI コントールクラス

 

 

フルーツの生成とFieldへの落下


フルーツオブジェクトの生成は、Next クラスがFruitGenerator クラスを使って生成する。生成したFruitBase クラスのインスタンスをGameControl クラスが受け取ってPlayer クラスに渡す。Player クラスからフルーツ投下イベント(OnPlayerEvent)を受信すると、今度はそのFruitBase クラスのインスタンスをField クラスに渡すという流れ。

フルーツの生成とフィールドへの落下

 

 

フルーツの結合と得点の更新


フルーツの結合は、FruitBase クラスの衝突検知から開始される。同一種のフルーツ衝突を検知した場合は、OnFruitEvent をGameControl に通知する。GameControl クラスは、衝突した2 つのFruitBase クラスのインスタンスを削除して、新しいFruitBase クラスのインスタンスを生成する。それをField クラスに渡すのと同時にLevelScore クラスの得点の加算のメソッド(AddScore)を呼び出す。LevelScore クラスは、得点加算時にScoreText オブジェクトのテキストを更新する。

フルーツの結合

 

次の記事


(準備中)

 

 

 


目次に戻る