レッスン 1.2 - アクセル全開!

Tutorial

Beginner

+0XP

70 mins

(221)

Unity Technologies

レッスン 1.2 - アクセル全開!

概要:

このレッスンでは、ドライビングシミュレーターを動かしていきます。まず、はじめて C#でコードを記述し、車両の位置を変更して前進できるようにします。次に、物理コンポーネントをオブジェクトに追加して、それらが互いに衝突できるようにします。最後に、Hierarchy ウィンドウでオブジェクトを複製し、道路に沿って配置する方法を学習します。

プロジェクトの成果物:

独自の C# スクリプトを搭載して移動できるようになった車両と、オブジェクトでいっぱいの道路ができ、すべてのオブジェクト同士は物理コンポーネントを使用して互いに衝突することができる状態になっています。

Languages available:

1. 導入

2. はじめてのスクリプトを作成して適用する

はじめての C# スクリプトとして、車両の動きを制御するスクリプトを書くところからこのレッスンを始めましょう。
  1. Project ウィンドウで右クリックして、Create > Folder と選択してフォルダーを作成し、「Scripts」という名前にします。
  2. 「Scripts」フォルダー内で右クリックして、Create > C# Script と選択して C#スクリプトファイルを作成し、名前を「PlayerController」にします。
  3. 新しいスクリプトを Vehicle オブジェクトドラッグします。
  4. Vehicle オブジェクトをクリックして、インスペクターのコンポーネントとして追加されていることを確認します。

3. Update() メソッドにコメントを追加する

車両を前に動かすには、まず新しいスクリプトを開いて、開発環境に慣れておく必要があります。
  1. スクリプトをダブルクリックして Visual Studio で開く
  2. Update() メソッドで、「// Move the vehicle forward」とコメントを記入します(※コメントは「//」に続けて日本語で書くこともできます)

4. 車を前に動かす

プログラムする内容についてコメントをつけました。次は、実際に車両を前進させるコードの行を作成しましょう。
  1. 新しく追加したコメントの次の行で「transform.tr」まで入力し、オートコンプリートメニューから Translate を選択します。
  2. (」を入力し、「0, 0, 1」を括弧の間に追加し、セミコロン(「;」)で行を終えます。
  3. Ctrl/Cmd + S を押してスクリプトを保存し、ゲームを実行してテストします。

5. Vector3 を使って前に進む

Z 軸に沿って移動するように車両をプログラムしましたが、実はもっときれいにコードを書く方法があります。
  1. 先ほど入力した「0, 0, 1」を削除し、オートコンプリートを使用して「Vector3.forward」に置き換えます

6. 車のスピードをカスタマイズする

現在、車のスピードをコントロールすることはできません。コードを変更して、これを調整できるようにしましょう。
  1. 「* Time.deltaTime」を追加して、ゲームを実行します。
  2. 「* 20」を追加して、ゲームを実行します。

7. RigidBody コンポーネントをオブジェクトに追加する

現在、車両は箱を通り抜けるようになっています。より現実に近くするには、物理演算を追加する必要があります。
  1. Vehicle を選択し、インスペクターで Add Component をクリックして RigidBody を選択します。
  2. Obstacle を選択し、インスペクターで Add Component をクリックして RigidBody を選択します。
  3. RigidBody コンポーネントのプロパティで、車と障害物の質量を現実世界でありそうな重量(キログラム単位)まで増加させて、再度テストします。

8. 障害物を複製して配置する

最後に障害物を複製して、道路をよりスリリングなものにしてみましょう。
  1. 障害物をクリックして、Hierarchy のリストの一番下にドラッグします。
  2. Ctrl/Cmd+D を押して障害物を複製し、Z 軸に沿ってより原点に近い方へ移動させます。
  3. これをさらに数回繰り返して、障害物を増やします。
  4. 何度か複製した後、Hierarchy から障害物を 1 つ選択し、Ctrl キーを押しながらクリックして複数の障害物を選択し、それらを複製します。

9. レッスンのまとめ

新しい機能

  • 車が一定のスピードで道路を移動する
  • 車が障害物と衝突すると、空中に飛ぶ

新しい概念とスキル

  • C# スクリプト
  • Start() と Update()
  • コメント
  • メソッド
  • パラメータを渡す
  • Time.deltaTime
  • 乗算(「*」)演算子
  • コンポーネント
  • コライダーと RigidBody

次のレッスン

  • カメラにコードを追加して、プレイヤーが道路に沿って運転するときにカメラが追従するようにします。

Complete this Tutorial