【Unity1】ランダムで足場を自動生成!Prefab, Instantiate【ユニティちゃん縦スクロール11】
Unity5.1.1f1 Personal(2015年6月)
このコンテンツは、『ユニティちゃんライセンス』で提供されています
前回の続きです〜
長いことチュートリアルにお付き合い頂きありがとうございました〜これでユニティちゃん横スクロールアクション2Dは最後の記事になります〜
今回はランダムで足場を自動生成したいと思います〜
【目標】ランダムで足場を自動生成する!
①足場をPrefab化する
まずは前回作成したStepオブジェクトをPrefab化します〜Prefabについては下記エッセンスに詳しくまとめてありますので、ご参照下さい〜
Prefabsフォルダを作成し、Stepオブジェクトをドラッグ&ドロップして下さい〜
ドラッグ&ドロップ!
PrefabフォルダにコピーしたGround1をHierarchyにドラッグ&ドロップすれば、たくさんのPrefabを生成できます〜
初期の足場として5個程配置しておきましょう〜
Prefabを適当に配置
②足場を自動生成する
続いて足場を自動生成しましょう〜
スコアが入るラインをscoreUpPosという変数で定義していたことを覚えていますでしょうか〜?過去記事をご参照下さい〜
CameraScriptで設定されているscoreUpPosを超えた時、ゲーム画面を上にはみ出した位置に、足場を2つずつ生成していきましょう〜
生成するのは先ほど作成したStepプレファブです〜以下ソースです〜
public変数としてstepを宣言しておりますので、PrefabのStepを指定してあげましょう〜
ドラッグ&ドロップ!
scoreUpPosを超えるごとに、CreateStepメソッドを呼び出し、足場を生成しております〜
Prefabを生成するにはInstantiateという記述を行います〜第1引数にはpublic変数にて定義したStepプレファブを指定します〜
第2引数には位置情報としてVector2を指定します〜Vector2のxには片方は-6.0〜0f、もう片方には0f〜6.0fを指定することにより、ステージの左右にランダムに足場を生成しています〜更に、yのほうにはgatePointに4.0f〜6.0fの数を足した値を設定することで、よりランダムな感じにしております〜
第3引数は傾きを指定しますが、今回はstep.transform.rotationというPrefabの傾きをそのまま指定し、特に傾けません〜
さあこれで、ランダムに足場を生成することができました!
足場がどんどん作られていきます
③壁を自動生成する
あとは壁を自動生成すれば、ゲームがずっと続くようになります〜
Unityちゃんの高さがy軸でいうところの10を超えた時、ゲーム画面からは見えない位置に壁を生成していきましょう〜以下ソースです〜
先ほどはscoreUpPosで足場を生成していましたが、今回はcreateWallPosという変数を新たに作成し、同じ要領で壁を作り続けています〜
先ほどと同じ要領で壁をPrefab化し〜
ドラッグ&ドロップ!
プレファブから最初の壁を生成しておき〜
ドラッグ&ドロップ!!
WallプレファブをCameraScriptに設定します!
ドラッグ&ドロップ!!!
④見えなくなったオブジェクトを削除する
オブジェクトの数は少ないほうがゲームの動作が軽くなりますので、画面から見えなくなったオブジェクトは削除してしまいましょう〜
まずは足場の削除をGroundScriptに追記しましょう〜
FindWithTagによりMainCameraをタグから検索して取得し、足場の高さがMainCameraの高さから6を引いた位置よりも下にきたらDestroyしております〜
続いて壁に、DestroyWallScriptを作成しWallプレファブに取り付けます〜以下ソースです〜
こちらもMainCameraをタグで取得し、壁や床の高さがMainCameraの高さから20を引いた位置よりも下にきたらDestroyしております〜
【結果】
ようやくゲームが完成致しました〜
タイトル画面を
タップするとゲームがはじまり
ジャンプで得点を稼ぎ
下に落ちたらゲームオーバー
タップしてタイトル画面へ
長いことありがとうございました、以上でユニティちゃん縦スクロールアクションのチュートリアルは終わりです〜
今後ともどうぞよろしくお願い致します〜
【Unity開発1】キャラクターを自動で移動させる【ユニティちゃん横スクロールアクション2D:1/11】
【Unity開発1】壁にぶつかった時にキャラクターを反転させる【ユニティちゃん横スクロールアクション2D:2/11】
【Unity開発1】キャラクターをジャンプさせる!【ユニティちゃん横スクロールアクション2D:3/11】
【Unity開発1】キャラクターをカメラが追いかける!【ユニティちゃん横スクロールアクション2D:4/11】
【Unity開発1】uGUIを使って点数を表示する!【ユニティちゃん横スクロールアクション2D:5/11】
【Unity開発1】タイトル画面とゲームオーバー画面を作る!【ユニティちゃん横スクロール2D:6/11】
【Unity開発1】アニメーションを付ける!【ユニティちゃん横スクロールアクション2D:7/11】
【Unity開発1】バグ発見!無限にジャンプできちゃう!【ユニティちゃん横スクロールアクション2D:8/11】
【Unity開発1】ボタン長押しでジャンプ力を強くしたい!【ユニティちゃん横スクロール2D:9/11】
【Unity開発1】足場を下から突き抜けて、そのまま乗っかりたい!【ユニティちゃん横スクロールアクション2D:10/11】