DTBのリスペクトゲームを作った、よ

あけましておめでとうございます

そりゃ新年ですから。もう16日ですけど。

はじめに

本年はこんな感じの年賀状を、少ない友人に送りつけました。
f:id:crssnky:20180116220802p:plain:w350
いわゆるDTB(どうぶつタワーバトル)っぽさを狙ったデザインです。
右上にQRコードを置いたのですが、これが絵がかけない人なりのおまけってことです。
どこに繋がってるかというと→DogTowerBattle
f:id:crssnky:20180116222023p:plain:w350
これまたDTBっぽいゲームが出てきました。
そうです、おまけでDTBのリスペクトゲームを作りました。

本編

元々QRコードで公開する予定だったので、OSに依存にしないWebアプリとして作りました。 と、同時にUnityのWebGLやってみたいなぁ、という気持ちがあったのを思い出して、UnityのWebGLで公開することを決めました。
まだ正式にはモバイルでwebGLサポートしてないみたいですけど、まぁ3Dのゲームじゃないし大丈夫っしょ。←実際大丈夫でした(iPhone6s Chrome)。

作成

f:id:crssnky:20180116231014p:plain:w350
本作は、最初にTitle Sceneに降りたって、Play Sceneへ移動、終わったらその上にResult Sceneを重ねるという構成にします。Result後はまたPlay Sceneへ移動もできるようにします。

Title

f:id:crssnky:20180116232229p:plain:w350
Canvasにそれっぽいタイトルを作成し、Pushテキストを表示する。←これは表示するテキスト以上の大きさのオブジェクトにして、Play Sceneへ移動するタッチイベントを設定する。
上部のRank Text「高く積み上げて点数を稼ごう!」は、非同期でDBへユーザーのハイスコアを取得していって、取得でき次第切り替える。(参考:当記事の画像2枚目)
DB参考↓ qiita.com

あと、ランダムでテキトーにDogを降らせます。賑やかしですね。

Play

f:id:crssnky:20180116234203p:plain:w350
f:id:crssnky:20180116234427p:plain:w350
あー、CanvasとMainCameraの表示エリアの大きさの差が大きすぎる~~
フィールドはBoxで作って、回転ボタンは左右を用意。
新しいパーツを出すタイミングは、最新のパーツが静止したタイミングRigidbody2D.IsSleeping()で出します。
本家と同様、落ちたらゲーム終了です。

Result

f:id:crssnky:20180116235340p:plain:w350
Play Sceneに重ねます。
ボタンは再挑戦(→Play Scene読込)と、Tweet(→Tweet Intentで結果をツイート)の2種。
その上のResult Textは、DBへ非同期でアクセスして、取得でき次第順位を表示します。

おわりに

以上が簡単な作った内容です。
説明が少なすぎると思うので、githubのリンクを貼っておきます。
github.com

色々と配慮して足りてないので、あくまでもソースコードなどの参考用ということで。