【Unity4】道路をループ生成! Prefab, 条件分岐(if文)【レースゲーム4】
Unity5.1.1p3 Personal(2015年7月)
前回の続きです〜
今の状態だと、ある程度進むと車が崖から落ちてしまいますので、道路を延々と続くようにしたいと思います〜
【目標】道路を無限に伸ばし、車が走り続けられるようにする
わかりづらくて申し訳ありません〜
道路1から道路2に入ってしばらくしたら、道路1を道路2の前方に移動させ、逆に道路2から道路1に入ってしばらくしたら、同じように道路2を道路1の前方に移動させる、というのを繰り返していこうと思います〜
【課題1】地面と道路をPrefab化する
まずはCourseオブジェクトをGreenオブジェクトの子オブジェクトにしましょう〜
子オブジェクト化
次にこのGreenオブジェクトをPrefabして、Prefabのコピーを2つ作ります〜
それぞれ「Green1」、「Green2」と名前をつけて下さい〜
Project欄へPrefab化し、コピー元削除後、Prefabを2つ生成する
Green2のPositionを変更して、Car1オブジェクトの後ろ側に持っていきましょう〜Green2のTransform情報を貼っておきます〜
position.zを1000から-1000に変更
【課題2】一定距離進んだら、地面を移動させる
以下のScript(createScript)を、MainCameraに貼り付けて下さい〜
public変数が2つあるので、それぞれGreen1とGreen2を指定してあげましょう〜
ドラッグ&ドロップ!
各Greenの長さが2000なので、Greenの中心値である1000をMainCamera超えたタイミングで、各GreenのpositionZの値がborderの値よりも小さければ、2000先の位置に移動させることができます〜
例えば最初のborderである1000をMainCameraが超えた時、Green1のposition.zは1000、Green2のposition.zは-1000なので、border1000よりも小さい(1000は含まない)Green2のposition.zが-1000から3000へと変更されます〜
次のborderである3000をMainCameraが超えた時、Green1のposition.zは1000、Green2のposition.zは3000なので、border3000よりも小さい(3000は含まない)Green1のposition.zが1000から5000へ変更されます〜というのを延々と繰り返すというわけです!
離れたところから見てみましょう〜
ゲームスタート!
border1000を超えた!
border3000を超えた!
非常に地味な確認となりましたが、きちんと機能しております〜
今回はここまでです〜
ありがとうございました〜
【Unity開発4】車を走らせたい!【ドライビングゲーム2】
【Unity開発4】車をジャンプさせたい!【ドライビングゲーム3】
【Unity開発4】道路を無限に伸ばし続ける【ドライビングゲーム4】
【Unity開発4】敵キャラをランダムで生成する【ドライビングゲーム5】
【Unity開発4】レベルによるスピード制限機能を追加する!【ドライビングゲーム6】
【Unity開発4】制限時間を設ける【ドライビングゲーム7】
【Unity開発4】タイトル・ゲームオーバーを仕上げる!【ドライビングゲーム8】