Unity Create a Game Series (E14. game over)をやってみました。

Unity Create a Game Series (E14. game over)をやってみました。

今回はゲームオーバー画面をuGUIで作成し、”Play again”ボタンで、シーンをリロードする仕組みを作りました。これは今までミニゲームを作ったりした際に経験していたので簡単でした。

ゲームオーバーシーンを表示
ゲームオーバーシーンを表示

この回で、基本的なゲームの仕組みは揃いました。これから先の目次を見ると、それぞれの機能を磨き上げる工程になるので、おそらくそこまで難しいものではないと思われるので頑張って進んでいきます。

  • パーティクル追加
  • 敵ウェーブの修正
  • リコイル・リロード
  • 武器の追加
  • UI改良、
  • オーディオ追加
  • メニュー

あとは、ライフバー、アイテム、インベントリーあたりを学べばさらに良くなりそうです。

このプロジェクトの配布

https://hajimete-program.com/games/Unity Create a Game Series (E14. game over).zip

 

 

Unity Create a Game Series (E12. finishing the map generator)をやってみました。

引き続き、「Unity Create a Game Series」をやりマップの自動生成の作業が完了し、第7回までに作ったトップダウンシューティングゲームに組み込みました。

マップ自動生成をゲームに組み込んだところ
マップ自動生成をゲームに組み込んだところ

今回の第12回は、障害物に高低差を付け、グラデーションを付けれるようにしました。高低差はScaleで変更できるのが容易に想像できますが、Materialをプログラムから操作するのは少ないので、このチュートリアルで扱えてよかったです。また、今回は、Game.unityシーンに、MapGeneratorのオブジェクトをコピーペーストしてゲームに反映させました。MapGenerator.unityはシーンとして独立して保存しているのでいろいろ修正が可能です。

002
Unityエディターで、各マップを設定できるようにしている

MapGeneratorスクリプトには、Mapクラスを作り、その配列をUnityエディターから操作できるようにしたので、ちょっとしたマップの修正を検証するのが簡単になりました。

マップ自動生成の基礎プログラミングを手に入れた

様々なパラメータを修正できる
様々なパラメータを修正できる

今回まで一番の収穫は、プロシージャル・ジェネレーションの基礎を学習できたことです。ローグライク系ゲームのように、フロアを自動生成するような仕組みに作り替えたりはまだできませんが、それをするためのメッシュ生成や配列操作などは学べました。

このプロジェクトの配布

https://hajimete-program.com/games/Unity Create a Game Series (E12. finishing the map generator).zip

Unity Create a Game Series (E11. map navigation)をやってみました。

Unityのナビゲーション・探索システムでは、フィールドにBake(焼く)ことで、NavMeshAgentがそのフィールドを移動でき、NavMeshObstacle(障害物)を用意することで、その領域を移動できなくします。

ナビゲーションの設定は1つ1つのタイルに対して行うのではなく、1つ大きな100×100などのQuadを用意して、そこにBakeします。ちょうど以下のような感じです。NavMeshObstacleコンポーネントが付加されているオブジェクト移動できなくなるため、灰色になり、移動できるところは水色になります。

002
フィールドの外側に最大マップ領域を作ってNavMeshAgentが移動できるようにする

このままでもよいですが、今回は最大領域から落ちたりしないように、四方をマスキングしました。

003
NavMeshObstacleでマスキングして、移動できないようにする

まとめ

マップを自動生成して、NavMeshAgentが移動できるようになったのであとは細かい修正を残すだけとなりました。