unityでゲームを作ってみる日記その3~ブロック崩し~
ブロック崩しを作ってみたので。
今回の成果物
ゲーム自体はシンプルなブロック崩し。
待望のスコア処理、ゲームオーバー処理、リトライ処理なんかも実装!
デフォルトの物理演算以外にも、パドルの当たった位置で反射方向変えたり、ボールを加速させるような処理も実装してます。そこそこ遊べる感じ。ステージは1個しか作ってませんが、ファイル読み込みとかで色々作れるようにもしたり。
他にも軌跡エフェクトを入れたりマテリアル処理入れたりしてますので、ぱっと見はゴージャスな感じに見えますね。
色々と触った結果として、シェーダーとかテクスチャ、光源の勉強をしないと演出面の補強が難しいなぁと思ってるところです。
今回の新規取り組み事項
- ゲームマネージャーの実装
- TrailRendererの実装
- シェーダー・マテリアルの実装
ゲームマネージャーはゲームを色々取り仕切ってくれるオブジェクト。スコア処理とかリトライ処理とかをお任せしています。
unity機能としてあるわけではなく、各自での実装が必要となります。とは言え、メジャーな概念でもあるのでググると実装例はいっぱい出てきます。今回はシングルトンで実装したりするなど、それなりに使いまわせそうな感じで作ってみました。
TrailRendererはボールの後ろに尾を引くようなエフェクトを入れるコンポーネント。こちらはUnityの基本機能として実装済です。どんなエフェクトにするかは色々調整代があるし、見栄えも良いのでこれからも擦りまくりたいですね。
シェーダーは最近はUniversal Renderer Pipeline(URP)とシェーダーグラフでやるのが良いっぽいですね。Package Managerで上記2つをImport後、Create→Shader→Universal Renderer Pipeline→Lit Shader or Unlit Shaderあたりを作るのが良いのでしょう。違いは光源に対する応答の有無っぽい。
ググるとゲーミングっぽくグラデーションしていくシェーダーなんかを簡単に実装できたりする模様。ハデハデで愉快。
また、今回はブロックに金属っぽいマテリアルを追加してます。光を当てることで金属っぽく反射したりするのでリッチな感じになりますね。光源の当て方は今後も要勉強です。
まとめ
とりあえず2Dはなんとなく把握してきたので、次は3Dでしょうか。FPSっぽい的当てゲームを目標として取り組んでいこうと思います。