ラボ 3 - プレイヤーのコントロール
Tutorial
·
Beginner
·
+0XP
·
60 mins
·
(88)
Unity Technologies

概要:
このレッスンでは、プレイヤーの基本的な動きを制限するコードを含め、プレイヤーの基本的な動きをプログラムします。プレイヤーを動かす方法はプロジェクトの種類に応じてさまざまな方法が考えられるため、どのように実装するかについてのステップバイステップの指示はありません。これを行うためには、リサーチをしたり、他のコードを参照したり、上手く動かないときは問題を解決したりする必要があります。
プロジェクトの成果物:
プレイヤーがユーザーの入力に基づいて動き回るようになり、かつ、入っていってはいけないところには動けなくなります。
Languages available:
1. 導入
2. PlayerController を作成し、コードを計画する
プレイヤーがどのような動きをするかに関わらず、必ず PlayerController スクリプトが必要になります。
- プレイヤーを選択し、Rigidbody コンポーネントを追加します。
- 「Assets」フォルダに新しく「Scripts」フォルダーを作成します。
- 新しい「Scripts」フォルダー内に、新しく「PlayerController」C#スクリプトを作成します。
- スクリプトをプレイヤーにアタッチしてから開きます。
- プレイヤーに必要なプログラミングの種類を決めます。
このステップを終えたら、新しいスクリプトを開いて、その中に何を書くのか、しっかりとした計画を立てなければなりません。
3. ユーザー入力から基本的な動作をさせる
まず最初にプログラムするのは、ユーザーの入力に基づいたプレイヤーの非常に基本的な動きです。
- 新しく private float speed 変数を宣言します。
- 物理を使用する場合は、新しく Rigidbody playerRb 変数を宣言し、Start() で初期化します。
- 矢印キーを使用する場合は、新しく verticalInput 変数および horizontalInput 変数を宣言します。
- キーを押したことに基づいた動きをする場合は、if 文を作成して KeyCode をテストします。
- Translate メソッドまたは AddForce メソッド(物理を使用している場合)を使用して、キャラクターを移動します。
このステップを終えると、ユーザーの入力に基づいて、プレイヤーを望みの方向に動かせるようになっているはずです。
4. プレイヤーの動きを制限する
プレイヤーがどのような動きをしていても、ゲームプレイに合わせた制限をかける必要があります。
- プレイヤーが衝突してはいけないオブジェクト(地面を含む)に衝突している場合は、Collider コンポーネントの「Is trigger」ボックスの状態をチェックしてください。
- プレイヤーの位置や回転を制約する場合は、Rigidbody コンポーネントで制約を展開し、特定の軸について制約をかけます。
- プレイヤーが画面の外に出ていってしまう場合は、if 文に位置を確認してリセットするようなコードを書いてください。
- プレイヤーが二段ジャンプをしたり画面外へ飛んでいってしまう場合、ブーリアン変数を作ってユーザーのできる操作に制限を与えます。
- プレイヤーがプレイエリアの外側に沿って物理的な障壁によって制約を受ける必要がある場合は、プリミティブの平面や立方体を作成し、それらを拡大縮小して壁を形成します。
このステップを終えると、プレイヤーの動きにはゲームがまともにプレイできるような適切な制限を加えられているはずでず。
5. コードを整理して、バックアップをエクスポートする
これで基本的な機能が動作するようになったので、コードを整理してバックアップを作成しましょう。
- 新しく空のゲームオブジェクトを作成し、その中にオブジェクトを入れ子構造を作り、ヒエラルキーを整理します。
- コードブロックを新しい void 関数に移動して、Update メソッドをクリーンアップします(例:「MovePlayer()」や「ConstraintPlayerPosition()」など)。
- コメントを追加してコードを読みやすくします。
- すべてが正常に動作することを確認するためにテストを行い、シーンを保存します。
- Assetsフォルダーを右クリックして「Export Package」を選んでパッケージをエクスポートし、新しいバージョンを Backups フォルダーに保存します。
このステップを終えると、コードには適切にコメントが付けられ、整理され、バックアップができた状態になっているはずです。
6. レッスンのまとめ
新しい進捗:
- ユーザーの入力に基づいてユーザーが移動できる
- プレイヤーの動きがゲームの要件に合わせて制約されている
新しい概念とスキル:
- C#を使って自分の手でプログラミングをする
- 問題のトラブルシューティングを自分の手で行う