Unity LearnのRoll a Ballを作成 初心者おすすめ~プレイヤーの移動~

Unity

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の加え方は、以下の手順です。

  1. 「Player」を選択します。
  2. 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);
    }
}
Speed=0で実行

以下の「PlayerController」のSpeedの値を10に変更します。
実行するとプレイヤーのボールが先ほどより、早く動くことが
わかると思います。

おわりに

以上で、Roll a Ball のプレイヤーの移動は終わりです。
今回は、以下のことをしました。

  • Rigidbodyの追加
  • パッケージのインストール
  • プレイヤーの動作

プレイヤーの動作では、コードを書きましたが、
始めはコピーでも良いと思います。
使っていくうちにだんだん覚えていきます!
引き続き、Roll a Ballを作っていくので、
よろしくお願いいたします。

次はカメラの移動についてです。
Unity LearnのRoll a Ballを作成 初心者おすすめ~カメラの移動~


※今回のこと以外でもアプリを作成する中で、不明点等でわからないことがでてくると思います。その際は、1人で悩まずに気兼ね
なく、相談したいことがあれば、コメントまたはtwitter
で連絡ください。
twiiterアカウント~otakutomo~

コメント

タイトルとURLをコピーしました