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

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

【Unity4】車を走らせる!GetKey, FixedUpdate, velocity【レースゲーム2】

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


スポンサーリンク

Unity5.1.1p3 Personal(2015年7月)

f:id:hiyotama:20150505151209p:plain

 

前回の続きです〜

 

今回は車を走らせたいと思います〜

 

【目標】キー操作で車を動かせるようにする!

 

【課題1】車を前方と左右にキー移動させる

まずは車に重力と衝突判定を取り付けます〜

Car1オブジェクトにAddComponent>Physics>RigidBodyと、BoxColliderを取り付けて下さい〜

RigidBodyに関しては、転倒したり曲がって走らないように、ConstraintsのFreezeRotationを全てチェックしてください〜

BoxColliderに関しては、下の設定画像を参考にColliderの位置を調整して下さい〜

 

f:id:hiyotama:20150503163536p:plain

RigidBodyのFreezeRitationとCollider位置調整

 

続いてCar1オブジェクトにmoveScriptというスクリプトを設定します〜以下ソースです〜

 

 

FixedUpdateの中でキーボードの上ボタンを押している間Accelメソッドを実行しspeedを+3し続け、同時にRigidBody.velocityの値を変更することによって、前方へ進みます〜

 

FixedUpdateは端末によってフレーム回数が左右されないため、性能の良い端末だととても早く、性能の悪い端末だととても遅いといった不具合を防いでくれます〜

 

キー判定には①GetKeyDown②GetKey③GetKeyUpと3種類あり、①は押した瞬間、②は押している間ずっと、③はボタンを放した時にそれぞれ処理を実行します〜今回は車のアクセルなので、押している間ずっと前に進み続けるGetKeyを使います〜

 

velocityはどれだけの距離を移動するかという速度を表しております〜今回の場合、xとyは速度を加えず、z軸方向にのみspeedを指定し、前に勧めております〜

 

右ボタンを押した時に実行されるRightメソッドは、車のX軸が5より小さい時(道路からはみ出ていない時)movePowerの数値分右へ移動します〜transform.position.yやtransform.position.zは、今の位置を取得しているだけですので、X軸以外は移動しません〜

左ボタンのLeftメソッドも同様の処理が書かれております〜

 

最後にCourseオブジェクトに付いているMeshColliderのConvexにチェックを入れた上で、IsTriggerにチェックを入れて下さい〜

今回は関係ないのですが、次回この車をジャンプをさせる時にOnTriggerEnterという処理を使うための下準備です〜

ちなみにIsTriggerにチェックを入れるとColliderが無効になりますので、今車が衝突しているのは、CourseではなくGreenとなります〜が、CourseとGreenの高さは0.05しか違わないので、問題ないでしょう〜

 

f:id:hiyotama:20150503153952p:plain

車が動くようになりました

 

今回はここまでです〜

ありがとうございました〜

 

【Unity開発4】下準備【ドライビングゲーム1】

【Unity開発4】車を走らせたい!【ドライビングゲーム2】

【Unity開発4】車をジャンプさせたい!【ドライビングゲーム3】

【Unity開発4】道路を無限に伸ばし続ける【ドライビングゲーム4】

【Unity開発4】敵キャラをランダムで生成する【ドライビングゲーム5】

【Unity開発4】レベルによるスピード制限機能を追加する!【ドライビングゲーム6】

【Unity開発4】制限時間を設ける【ドライビングゲーム7】

【Unity開発4】タイトル・ゲームオーバーを仕上げる!【ドライビングゲーム8】