読者です 読者をやめる 読者になる 読者になる

Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity1】ランダムで足場を自動生成!Prefab, Instantiate【ユニティちゃん縦スクロール11】

Unity 2D 縦スクロールアクション ユニティちゃん チュートリアル

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

Unity5.1.1f1 Personal(2015年6月)

 

f:id:hiyotama:20150622010040p:plain

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています

 

前回の続きです〜

 

長いことチュートリアルにお付き合い頂きありがとうございました〜これでユニティちゃん横スクロールアクション2Dは最後の記事になります〜

 

今回はランダムで足場を自動生成したいと思います〜

 【目標】ランダムで足場を自動生成する!

 

①足場をPrefab化する

まずは前回作成したStepオブジェクトをPrefab化します〜Prefabについては下記エッセンスに詳しくまとめてありますので、ご参照下さい〜

 

  

Prefabsフォルダを作成し、Stepオブジェクトをドラッグ&ドロップして下さい〜

 

f:id:hiyotama:20150624081339p:plain

ドラッグ&ドロップ!

 

PrefabフォルダにコピーしたGround1をHierarchyにドラッグ&ドロップすれば、たくさんのPrefabを生成できます〜

 

f:id:hiyotama:20150428213157p:plain

初期の足場として5個程配置しておきましょう〜

 

f:id:hiyotama:20150624081715p:plain

Prefabを適当に配置

 

②足場を自動生成する

続いて足場を自動生成しましょう〜

 

スコアが入るラインをscoreUpPosという変数で定義していたことを覚えていますでしょうか〜?過去記事をご参照下さい〜

 

 

CameraScriptで設定されているscoreUpPosを超えた時、ゲーム画面を上にはみ出した位置に、足場を2つずつ生成していきましょう〜

 

生成するのは先ほど作成したStepプレファブです〜以下ソースです〜

 

 

public変数としてstepを宣言しておりますので、PrefabのStepを指定してあげましょう〜

 

f:id:hiyotama:20150624155616p:plain

ドラッグ&ドロップ!

 

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の傾きをそのまま指定し、特に傾けません〜

 

さあこれで、ランダムに足場を生成することができました!

 

f:id:hiyotama:20150624155951p:plain

足場がどんどん作られていきます

 

③壁を自動生成する

あとは壁を自動生成すれば、ゲームがずっと続くようになります〜

 

Unityちゃんの高さがy軸でいうところの10を超えた時、ゲーム画面からは見えない位置に壁を生成していきましょう〜以下ソースです〜

 

 

先ほどはscoreUpPosで足場を生成していましたが、今回はcreateWallPosという変数を新たに作成し、同じ要領で壁を作り続けています〜

 

先ほどと同じ要領で壁をPrefab化し〜

 

f:id:hiyotama:20150624161310p:plain

ドラッグ&ドロップ!

 

プレファブから最初の壁を生成しておき〜

 

f:id:hiyotama:20150624161450p:plain

ドラッグ&ドロップ!!

 

WallプレファブをCameraScriptに設定します!

 

f:id:hiyotama:20150624161804p:plain

ドラッグ&ドロップ!!!

 

④見えなくなったオブジェクトを削除する

オブジェクトの数は少ないほうがゲームの動作が軽くなりますので、画面から見えなくなったオブジェクトは削除してしまいましょう〜

 

まずは足場の削除をGroundScriptに追記しましょう〜

 

 

FindWithTagによりMainCameraをタグから検索して取得し、足場の高さがMainCameraの高さから6を引いた位置よりも下にきたらDestroyしております〜

 

続いて壁に、DestroyWallScriptを作成しWallプレファブに取り付けます〜以下ソースです〜

 

 

こちらもMainCameraをタグで取得し、壁や床の高さがMainCameraの高さから20を引いた位置よりも下にきたらDestroyしております〜

 

【結果】

ようやくゲームが完成致しました〜

 

f:id:hiyotama:20150624163027p:plain

タイトル画面を

 

f:id:hiyotama:20150624163049p:plain

タップするとゲームがはじまり

 

f:id:hiyotama:20150624163109p:plain

ジャンプで得点を稼ぎ

 

f:id:hiyotama:20150624163136p:plain

下に落ちたらゲームオーバー

 

f:id:hiyotama:20150624163027p:plain

タップしてタイトル画面へ

 

 

長いことありがとうございました、以上でユニティちゃん縦スクロールアクションのチュートリアルは終わりです〜

今後ともどうぞよろしくお願い致します〜

 

【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】

【Unity開発1】ランダムで足場を自動生成する【ユニティちゃん横スクロールアクション2D:11/11(Fin)】