2020年6月20日土曜日

2Dスクロールゲーム開発日記 #10



おはこんばんにちは!ゲームマスターのギルガメです!

今回は空の雲の自動生成を追加しようと思います。

雲のデザインはギルガメのアセットページにあるフィールド1セットに含まれています。自由に使っていいですよ!

まず自動生成なので決めた場所からランダムに生成するロジックが必要になります。決めた場所があっても、一つ一つ決めるときりがないので、コライダーの囲っている場所からランダムに生成する方法に決めました。

また今回の雲は右から左にいきます。ですが、生成された雲にはある程度までいくとオブジェクトごと消さないと沢山の雲が生成されてだんだん重くなっていきます。なのでマップの端に雲を消す処理のコライダーも作ります。

1は雲のじどうせいせいの場所
2は生成された雲をけす処理の場所

上記のように設定が完了したら、さっそくスクリプトを作っていこう!
3つのスクリプトを用意します。
  • Cloud.cs
  • CloudManager.cs
  • CloudRemover.cs
Cloud.cs
こちらのスクリプトは雲が右から左にいくようのスクリプトです。

CloudManager.cs
こちらのスクリプトはコライダーからランダムで雲を生成します。

CloudRemover.cs
こちらのスクリプトは雲が雲削除のコライダーに触れたときに、削除するスクリプトです。

ふぅ・・ちょっとテストしてみよう。
あ!雲がマップのオブジェクトに引っかかってします・・これを修正するには新しい雲用のレイヤーを作って、ほかのオブジェクトをすり抜けるように設定します。
Cloud(雲)のレイヤーを作成して、メニューのEdit>Project Settings..>Physics2Dを上記のようにチェックを外すことでほかのオブジェクトをすり抜けるようになります。

よし、もう一回テストだ!

ランダムで雲が生成された!

これで毎回同じ雲の流れがないので新鮮かも。
またトラップの自動生成などにも使えそう!

今度はプラットフォームを追加してみようかな!




0 件のコメント:

コメントを投稿