前提・実現したいこと
Unityで主人公キャラクター4方向移動させ、向きに応じてアニメーションを切り替えたいのですがどうしたらよいのでしょうか?
###ソースコード
public class PlayerMove : MonoBehaviour
{
[SerializeField] float speed = 100f; // 移動早さ
Animator animator; Vector2 direction; void Start() { } // Update is called once per frame void Update() { PlayerIDOU(); } public void PlayerIDOU() { // 矢印キーの入力情報を取得 float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); // 移動する向きを作成する direction = new Vector2(h, v).normalized; // 移動する向きとスピードを代入 GetComponent<Rigidbody2D>().velocity = direction * speed; animator.SetFloat("D_X", h); animator.SetFloat("D_Y", v); }
試したこと
unityでbrend treeと上記のコードを用いて入力されたキーの方向に応じてキャラクターが動くか試したところ全くうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
unity 2019.4.0f1 Personal
> Unityで主人公キャラクター4方向移動
コードを見る限り4方向ではなく、360度移動させるように書いてあるようですが、4方向移動がしたいのか、それとも360度移動させたいのですか?
また、2D のようですが、アニメーションは何種類あって、それぞれどういうアニメーションを再生しているのですか?
360度移動でした。
アニメーションは上下左右の4種類あって、上下左右に歩くアニメーションです。
こちら https://teratail.com/questions/275113 でも同じことを答えたのですが、遷移とかやめてしまってそれぞれのステートに割り当てたアニメーションを再生したいタイミングでステートを指定してアニメーションを再生したらよいでしょう。
360度移動をしたいなら、斜め移動の時どのアニメーションを再生するのかという決まった回答のない問題があるので、それは自分で決めてください。
あなたの回答
tips
プレビュー