Unityを学びたい初心者の方や基礎を学びたい方に向けて、
Unityが公式で紹介しているRoll a Ballをまとめました。
今回は第2章のプレイヤーの移動についてです。
こちらは、以下の第1章からのつづきです。
Unity LearnのRoll a Ballを作成 初心者おすすめ~ゲームセットアップ~
※アプリを作成する中で、不明点等でわからないことが
でてくると思います。その際は、1人で悩まずに気兼ね
なく、相談したいことがあれば、コメントまたはtwitter
で連絡ください。
twiiterアカウント~otakutomo~
※Roll a Ballは2020年8月に新しくなりました。
以前のものを興味ある方は以下のリンクから見ることが
できます。
Roll a Ball~Unity Learn~
Unity LearnのRoll a Ballを作成 ~プレイヤーの移動~
Roll a Ballのプレイヤーの移動は以下のリンクを参考に作成していきます。
Roll a Ball(Moving the Player)
プレイヤーにRigidbodyを加える
プレイヤーにRigidbodyを加えます。
Rigidbodyをオブジェクトに加えることで、物理特性を制御できます。
例えば、壁にぶつかる、重力の影響を受けるといった動作が可能になります。
Rigidbodyの加え方は、以下の手順です。
- 「Player」を選択します。
- Inspecterの一番下にある「Add Component」-「Physics」「Rigidbody」を選択
(検索欄にRigidbodyを入れてもよいです。)
Rigidbodyの追加は以上となります。
Add Componentでは、Script(動作)やAudio(音声)等も
追加でき、よく使うものなので覚えておくと便利です。
パッケージのインストール
プレイヤーオブジェクトを制御するために、キーボード入力
をプレイヤーオブジェクトに適用する必要があります。
パッケージのインストールは以下の手順です。
- Window > Package Managerを開きます
- 「Input System」を選択します
- 「Install」ボタンを押し、インストールを開始します
- ポップアップは、「Yes」を押します
- 再び、ポップアップがでますので、「Save」を押します
以上で、パッケージのインストールは終了となります。
このゲームをWindows用に作成している場合、ゲームに入力システムパッケージを使用するために以下の設定をします。
- File>Build Settingsを開きます
- Architectureを「x86_64」に変更します
次に、プレイヤーオブジェクトに入力システムの設定をします。
- 「Player」を選択します。
- Inspecterの一番下にある「Add Component」-「Input」-「Player Input」を選択
- 「Inspecter」-「Player Input」の「Create Actions」を押す
- 「Input」という名前で新規にフォルダを作成し、その配下に「InputAction.inputactions」を作成します。
- 作成した「InputAction」を「Inspecter」-「Player Input」の「Actions」にドラッグで持っていきます。
以上が入力システムの設定です。
プレイヤーの移動
プレイヤーの動作を付けていきます。
プレイヤーの動作は以下の手順で行います。
- 「Player」を選択します。
- Inspecterの一番下にある「Add Component」-「New Scriptを選択
- 「PlayerController」という名前で作成します。
- 「Assets」の配下に新規で「Script」フォルダを作成し、「PlayerController」を「Script」配下に移動します
- 「PlayerController」には下記に記したコードを記載しています
これで、プレイヤーの移動はおわりです。
再生ボタンを押し、実行すると動かすことができます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
public float speed = 0; //プレイヤーのスピード
private Rigidbody rb;
private float movementX;
private float movementY;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody>();
}
private void OnMove(InputValue movementValue)
{
Vector2 movementVector = movementValue.Get<Vector2>();
movementX = movementVector.x;
movementY = movementVector.y;
}
private void FixedUpdate()
{
Vector3 movement = new Vector3(movementX, 0.0f, movementY);
rb.AddForce(movement * speed);
}
}
以下の「PlayerController」のSpeedの値を10に変更します。
実行するとプレイヤーのボールが先ほどより、早く動くことが
わかると思います。
おわりに
以上で、Roll a Ball のプレイヤーの移動は終わりです。
今回は、以下のことをしました。
- Rigidbodyの追加
- パッケージのインストール
- プレイヤーの動作
プレイヤーの動作では、コードを書きましたが、
始めはコピーでも良いと思います。
使っていくうちにだんだん覚えていきます!
引き続き、Roll a Ballを作っていくので、
よろしくお願いいたします。
次はカメラの移動についてです。
Unity LearnのRoll a Ballを作成 初心者おすすめ~カメラの移動~
※今回のこと以外でもアプリを作成する中で、不明点等でわからないことがでてくると思います。その際は、1人で悩まずに気兼ね
なく、相談したいことがあれば、コメントまたはtwitter
で連絡ください。
twiiterアカウント~otakutomo~
コメント