2Dのキャラクターに歩行アニメーションを追加したいです。
スーパーファミコンぐらいのドラゴンクエストのようなイメージです。
上下左右で向きに応じたアニメーションをさせたいのですが、上手くいかずに困っています。
下記のようにトリガーを使ってみたのですがある方向に動かすと今行っているアニメーションが終了したのち動かした方向のアニメーションが再生されてしまいます。
移動する方向を入力したらすぐさまその方向のアニメーションを再生させたいです。
どこを変更すれば期待通りの動きになるのか、またもしすでにより良いテンプレートのような方法があるなら教えていただきたいです。
よろしくお願いします。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour{ Animator animator; // 速度 public Vector2 SPEED = new Vector2(0.05f, 0.05f); // Use this for initialization void Start() { this.animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { // 移動処理 Move(); } // 移動関数 void Move() { // 現在位置をPositionに代入 Vector2 Position = transform.position; // 左キーを押し続けていたら if (Input.GetKey("left")) { this.animator.SetTrigger("LeftTrriger"); // 代入したPositionに対して加算減算を行う Position.x -= SPEED.x; } else if (Input.GetKey("right")) { // 右キーを押し続けていたら this.animator.SetTrigger("RightTrriger"); // 代入したPositionに対して加算減算を行う Position.x += SPEED.x; } else if (Input.GetKey("up")) { // 上キーを押し続けていたら this.animator.SetTrigger("BackTrriger"); // 代入したPositionに対して加算減算を行う Position.y += SPEED.y; } else if (Input.GetKey("down")) { // 下キーを押し続けていたら this.animator.SetTrigger("FrontTrriger"); // 代入したPositionに対して加算減算を行う Position.y -= SPEED.y; } // 現在の位置に加算減算を行ったPositionを代入する transform.position = Position; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/29 04:12