※ これは 2020/12/25 時点の Unity 2020.2.1f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は押しっぱなしでキャラが動くようにしたので、今度は8方向に動かしてみる
8方向のキャラ絵は下記のサイトから白猫のキャラ絵をお借りした
スポンサードリンク
手順としては下記の内容とあまり変わらない
Animator
のウィンドウを開き、Blend Tree
をダブルクリックで開いたら、中央のリストに斜め方向の4つの Motion
を「+」ボタンを押下して追加後、それぞれの方向の Animation Clip
を指定する
あとは Cat.cs
を編集
using UnityEngine; using UnityEngine.InputSystem; public class Cat : MonoBehaviour { private Animator animator = null; private Vector2 move = Vector2.zero; public void Awake() { this.animator = this.GetComponent<Animator>(); } public void Update() { if (this.move != Vector2.zero) { this.transform.Translate(this.move * Time.deltaTime * 3f); } } public void OnMove(InputAction.CallbackContext context) { // キー入力が離れた場合も更新される this.move = context.ReadValue<Vector2>(); var normalized = new Vector3(Mathf.Round(move.normalized.x), Mathf.Round(move.normalized.y), 0); // 斜め方向も許容 if (normalized != Vector3.zero) { this.animator.SetFloat("x", normalized.x); this.animator.SetFloat("y", normalized.y); } } }
上下左右4方向に排他していたところを、斜め方向も許容するように変更
これで終わりなのでお試し
ぐるぐると回る白猫できた!