こちらの記事のとおり、教本「Unityの寺子屋」で学習中です。

「Unityの寺子屋」はこちら。

Unityの寺子屋 定番スマホゲーム開発入門
いたのくまんぼう 大槻 有一郎
エムディエヌコーポレーション (2017-08-16)



今回は Chapter 3 までやり終えたので、ご報告。



Chapter 3 放置ゲームに演出を加えよう

Chapter 2 で、ゲームの骨組み(一定時間ごとに生成されるオーブを集めて、寺を大きくして、クリア)はできています。

Chapter 3 では、そこに音やアニメーションを付け加えていきます。さらに、ゲームの進捗データを随時保存し、ゲームをいったん閉じてから再開しても、前回の状態を引き継げるようにします。


こんな感じになる

こんな感じになります。音とアニメーションが付くだけでかなり雰囲気が変わります。


学べること

  • AudioSource コンポーネントを使って、BGMと効果音を設定する。効果音はゲーム中の処理にあわせて、スクリプトから鳴らす
  • Animation クリップを作って、和尚さんを上下にゆらゆらと動かしたり、煙が大きくなりながら出現して薄くなりながら消えていったり、という演出を作る
  • 無料のアセット「DOTween」を使って、ゲットしたオーブが木魚に向かって弧を描いて飛んでいく動きを作る
  • PlayerPrefs クラスを使って、ゲームの進捗データを保存し、ゲーム再開時に読み込む

音やアニメーションの演出を付け加えることで、すごくゲームらしく、「プレーしてみよう」と思わせるような出来映えになります。
本の中では「ごほうび」と呼んでいたかも。演出って、とても大切なんですね。

また、ゲームデータのセーブとロードは強力ですね。今回は、画面上に今あるオーブの数、寺のレベル、スコア、前回オーブが生成された時刻を保存対象にしています。この4つの数値(時刻は文字列)だけ保存しておけば、再開時に前回終了時の状況をおおまかに再現できます。
このゲームでは、オーブが生成されたり、プレイヤーがオーブをゲットしたりするタイミングで自動的にデータをセーブしています。オートセーブですね。


自分で工夫してみたこと

ゲームクリア時に「クリア済み」の情報をセーブして、ゲーム再開時に「クリア済み」ならセーブデータを全部消して最初からスタートできるようにしました。

また、GameManager クラスのなかにたくさんの処理があり、コードの行数が長くなるので、以下のようにクラスを分割してみました。
  • GameManager:メインの処理(他のクラスに移さなかったもの。スコアの計算、データセーブなど)
  • OrbSpawner:オーブを生成する処理
  • AudioManager:音を鳴らす処理
  • TempleManager:寺の絵やスケールの変更、レベルアップ演出の処理

オブジェクトを生成したり音を鳴らしたりする処理は、作り込んでいくほどコード行数が長くなっていくので、自分はこのように専用のクラスに分けることが多いです。UI の変更処理を行うクラスを作ることも多いかも。


今回は以上です。