【Unity】マリオのような2Dゲームを作る〜プレイヤー移動編〜

【Unity】プレイヤー作成

前回はプレイヤーに当たり判定と物理的な力を加えました。
前回の記事はこちら⇨【Unity】マリオのような2Dゲームを作る〜プレイヤー編①〜
今回はプレイヤーをキーボードを押して動かせるようにしてみます。

プレイヤーを動かそう!!

マリオのように右を押したら右に行き、左を押したら左にいくといった動きを加えてみます。
それにはまずスクリプトを用意しないといけません。
スクリプトについてはこちらの記事で解説しています⇨【1】スクリプトを作成してみよう

スクリプトを作成してプレイヤーにアタッチ

スクリプトの中は今回このように書きました。

public class PlayerController : MonoBehaviour
{
public float speed;
private Rigidbody2D rb = null;

// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
}

// Update is called once per frame
void Update()
{
    float xSpeed = 0.0f;
    float horizotalKey = Input.GetAxis("Horizontal");

    if (horizotalKey > 0)
    {
        xSpeed = speed;
    }
    else if (horizotalKey < 0)
    {
        xSpeed = -speed;
    }
    else
    {
        xSpeed = 0.0f;
    }
    rb.velocity = new Vector2(xSpeed, rb.velocity.y);
}

}

赤文字の部分が僕が書いた部分になります。
ここではどうしてこのように書いたのかという解説はしません。

実際に動くか試してみよう

これで動くようにはなりましたが、回りながら動くのが気になるので回らないようにしましょう!!

方法はRididbody2Dの中のFreeze RotationのZにチェックを入れます。


これで回らなくなるはず・・・


これでプレイヤーが左右に移動することができました。
しかし、動いている時に動作がまだなく、ゲームっぽくないので次回はアニメーションを追加したいと思います。
ここまでありがとうございました。

前回の記事はこちら⇨【Unity】マリオのような2Dゲームを作る〜プレイヤー編①〜

コメント

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