レッスン 1.4 - ドライバーのシートにステップイン

Tutorial

Beginner

+0XP

50 mins

(315)

Unity Technologies

レッスン 1.4 - ドライバーのシートにステップイン

概要:

このレッスンでは、道路に出て車両を制御する必要があります。そのためには、プレイヤーが矢印キーを押していることを検出し、その入力に基づいて車両を加速および回転させる必要があります。新しいメソッド、ベクトル、および変数を使用して、車が前方または後方に移動したり、左右に曲がれるようにします。

プロジェクトの成果:

プレイヤーが上下の矢印キーを押すと、車両は前後に移動します。また、プレイヤーが左右の矢印キーを押すと、車両が回転します。

Languages available:

1. 導入

2. 車両を左右に動かせるようにする

これまで、車両は道路に沿ってまっすぐ進むことしかできませんでした。障害物を回避するために、左右に移動できるようにする必要があります。
  1. PlayerController.cs の先頭に、public float turnSpeed; を追加します。
  2. Update() で、transform.Translate(Vector3.right * Time.deltaTime * turnSpeed); を追加します。
  3. ゲームを実行します。turnSpeed 変数のスライダーを動かすと、車が左右に移動します。

3. 入力に基づいて左右に動かす

現在、インスペクターでしか車の左右の動きを制御できません。プレイヤーの能力を拡張して、プレイヤーが自分でその動きを制御できるようにする必要があります。
  1. PlayerController.cs で、新しく public float horizontalInput; 変数を追加します。
  2. Update() horizontalInput = Input.GetAxis("Horizontal"); と代入を行い、テストしてインスペクターで確認します。
  3. 車をコントロールできるように、車を左右に動かす Translate メソッドhorizontalInput 変数を追加します。
  4. インスペクターで、turnSpeed を設定し、speed 変数を変更して、微調整します。

4. 車の速度をコントロールする

プレイヤーがハンドルを制御できるようになったので、アクセルペダルとブレーキも制御できるようにしましょう。
  1. 新しく public forwardInput 変数を宣言します。
  2. Update() で、forwardInput = Input.GetAxis("Vertical"); と代入を行います。
  3. forwardInput 変数を車を前方向に動かす Translate メソッドに追加して、テストします。

5. 車をスライドさせるのではなく、回転させる

いま、車は少し奇妙な動きをしています...回転するのではなく、左へ右へとスライドしながら走っています。実車のように車両を回転させましょう。
  1. Update() で、transform.Rotate(Vector3.up, horizontalInput); を呼び出し、テストします。
  2. 車を左右に移動するコードの行を削除して、テストします。
  3. その行に「* turnSpeed * Time.deltaTime」を追加し、テストします。

6. コードと Hierarchy をきれいにする

このレッスンでは、新しいものをたくさん追加しました。先に進み、より専門的なことを学ぶ前に、スクリプトと Hierarchy をきれいにして、スクリプトを整理しておきましょう。
  1. Hierarchy 内で右クリックして Create Empty を選択し、「Obstacles」と名前を変更して、すべての障害物をドラッグします。
  2. PlayerController で変数の値を初期化し、すべての変数を private にします(player 変数を除く)。
  3. //」を使って、コードの各セクションにコメントを追加します。

7. レッスンのまとめ

新しい機能

  • プレイヤーが上下の矢印キーを押すと、車両が前後に移動する
  • プレイヤーが左右の矢印キーを押すと、車両が回転する

新しい概念とスキル

  • 空のオブジェクト
  • ユーザー入力の取得
  • Translate と Rotate

Complete this Tutorial