前回はプレイヤーに当たり判定と物理的な力を加えました。
前回の記事はこちら⇨【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ゲームを作る〜プレイヤー編①〜
コメント