前回はプレイヤーの動きを作りました。
前回の記事はこちら⇨【Unity】マリオのような2Dゲームを作る〜プレイヤー編②〜
今回は動きにアニメーションを加えたいと思います。
プレイヤーにアニメーション(動き)を加えよう
プレイヤーにアニメーションを加えるにはアニメーションを制御しなくてはなりません。
制御するとはどういうことかというと、前回キーボードの右を押したときに右に動きました。
つまりキーボードの右を押した時にプレイヤーが歩く、もしくは走るアニメーションにし、
そして右を離したら立ち止まるなど、簡単にいえば動きに合わせたアニメーションを作ることです。
アニメーションの作り方
アニメーションを作るにはまず1コマ1コマの画像が必要になります。
その画像の素材も先日アセットストアでインポートした中にありますのでそれを使います。
アセットストアからインポートする方法はこちらで紹介しています⇨【Unity】マリオのような2Dゲームをつくる〜ステージ編①〜
⏬アニメーションの作り方の動画
アニメーションを制御しよう
キーボードの右を押した時、左を押した時に先ほど作った走るアニメーションが起きるようにします。
アニメーションの制御方法
前回のスクリプトに書き足すことがあるのですが、その前に下準備が入りますので動画でまとめました⏬
※このブログではなぜそうなるかは敢えて解説は致しません。気になる方は調べてみてください。
スクリプトの書き足し
で引かれたところが今回追加されたスクリプトです。
public class PlayerController : MonoBehaviour
{
public float speed;
private Animator anim = null;
private Rigidbody2D rb = null;
// Start is called before the first frame update
void Start()
{
anim = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
float xSpeed = 0.0f;
float horizotalKey = Input.GetAxis("Horizontal");
if (horizotalKey > 0)
{
transform.localScale = new Vector3(1, 1, 1);
anim.SetBool("run", true);
xSpeed = speed;
}
else if (horizotalKey < 0)
{
transform.localScale = new Vector3(-1, 1, 1);
anim.SetBool("run", true);
xSpeed = -speed;
}
else
{
anim.SetBool("run", false);
xSpeed = 0.0f;
}
rb.velocity = new Vector2(xSpeed, rb.velocity.y);
}
}
実際にアニメーションができているか見てみよう
いい感じに動きました!!
次回は敵を作って見ましょう!!
敵キャラ作成の記事はこちら⇨【Unity】マリオのような2Dゲームを作る〜敵キャラ作成編〜
プレイヤーの接地判定の記事はこちら⇨【Unity】マリオのような2Dゲームを作る〜接地判定編〜
コメント