Unity2Dでタップで飛ぶゲームを作る③障害物をランダムで生成する。

2017年7月16日Unity

今回は障害物となるブロックをランダムで生成していきましょう。

まずロジック(アルゴリズム)を考えましょう。

  1. 乱数を生成しその数のブロックが複製される
  2. 位置が画面ギリギリのY軸を基準に調整される
  3. 複製されたオブジェクトは空のゲームオブジェクトの子オブジェクトになる
  4. 3の親オブジェクトがずっと左に移動する。

こんな感じで実装してみましょう。

①左に移動し続ける空のオブジェクトを作成する。

AllTransという名前で空のオブジェクトを作成しました。現在のヒエラルキーは以下の通りです。

②Blockを複製できるようPrehub化する。

Blockを複製して取り扱いやすいようにPrehub化しましょう。

シーンにあるBlockをしたのAssetのところにドラック&ドロップします。画像とかC#スクリプトとかがあるところですね。

こんなのができました。

③ゴリゴリ、スクリプトを書く

以下のスクリプトをAllTransにアタッチしてください。

インスペクターで値をとりあえず以下のようにしてみてください。

  • Block:Prehub化されたBlock(※シーンにあるものではない)
  • AllTrans:親となる空のゲームオブジェクト
  • Allspeed:ブロックが左に向かってくるスピード
  • TimeOut: ブロックが来る頻度
  • Block Base X : 画面の右の外側となるX (10ぐらい)
  • Block Base Y : 画面の端となるY(4.5ぐらい)

 

 

以下のようになりましたか。

 

 

しかしこれでは鳥がブロック当たっても何も起きません。

次回はコライダーを設定し当たり判定をつけていきましょう。

 

Unity

Posted by Yuya