【Unity】「糸通しゲーム」を作る その4 UI追加 編

【Unityの練習ゲーム作り 第一弾!】

ガラケーアプリでもヒットした、昔ながらの「糸通しゲーム」をUnityで作っています。

その1 大まかな設計を考えました
その2 糸と針の動作を実装しました
その3 当たり判定を追加しました

今回は 糸が針を通過した回数をカウントするUIと、ゲームオーバー画面,スタート画面を作っていきます。

針の通過をカウント

糸が針を通過した回数をカウントする方法はいくつか考えられます。

  • 針が等速で生成,動いていることを利用し、時間経過でカウント
  • 針のゲート部分に当たり判定をもつオブジェクトを追加し、衝突でカウント
  • 針が特定の位置に到達したら、カウント

応用が効き、かつ実装が簡単そうな 最後の方法をとることにします。

ただ、そのまま実装すると糸と針が衝突後(ゲームオーバー後)もカウントされてしまいます。そこで、その3ゲームオーバー条件を追加」で使用した flg もカウント条件に入れましょう。


針の動きをコントロールするHariControllerと、全体を管轄するGameManagerです。

ItoControllerには、flgのゲッターを追加してあります。

こんな感じ。無事 カウントできています。


一点問題が発生!

HariControllerのUpdate()内で、ItoConrollerにあるflgを参照し続けています。↓この部分です。

ゲームオーバー後、糸オブジェクトは破壊されます。そのため、”存在しない”糸オブジェクトの、flgを参照し エラーが発生してしまうのです・・・。

そこで、flgはGameManagerに管理してもらいましょう。セッターとゲッターをGameManagerに追加しました。

HariContorllerはgetFlgから読み込み、ItoControllerからはsetFlgに書き込みます。これでOKです。

ゲームオーバー画面

ゲームオーバー時に「再スタートボタン」、「スタート画面に戻るボタン」を表示します。

単純なゲーム故 テンポが大事だと思うので、余計な表示演出は無いほうが良いでしょう。

・・・

UIのButtonを2つ並べ、ゲームオーバーで表示をActiveにするようにしました。ボタンにはロードシーンを組み込んでいます。そのため、using UnityEngine.SceneManagement をお忘れなく。

こんな感じになりました。

メイン画面

適当にロゴを作って、完成!!


ゲームとしては、これで完成です!

その5はゲームを面白くするレベルデザインを考えます。