実行したいこと
右に行ったら右向きに歩いて止まったら右向きで止まる
って感じを上下左右したいです
試してること
Ani Stateから各走りに伸ばしてその矢印に当てはまるようにしました
各StayにはStopTriggerをつけています
Scriptはこんなかんじです
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerAnimation : MonoBehaviour 6{ 7 private Animator PlayerAni; 8 9 void Start() 10 { 11 PlayerAni = GetComponent<Animator>(); 12 } 13 14 void Update() 15 { 16 Ani(); 17 } 18 19 void Ani() 20 { 21 //下に動いたとき 22 if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) 23 { 24 PlayerAni.SetTrigger("FowardTrigger"); 25 } 26 if (Input.GetKeyUp(KeyCode.S) || Input.GetKeyUp(KeyCode.DownArrow)) 27 { 28 PlayerAni.SetTrigger("StopTriger"); 29 } 30 //右に動いたとき 31 if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) 32 { 33 PlayerAni.SetTrigger("RightTriger"); 34 } 35 if (Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.RightArrow)) 36 { 37 PlayerAni.SetTrigger("StopTriger"); 38 } 39 //左に動いたとき 40 if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) 41 { 42 PlayerAni.SetTrigger("LeftTriger"); 43 } 44 if (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.LeftArrow)) 45 { 46 PlayerAni.SetTrigger("StopTriger"); 47 } 48 //上に動いたとき 49 if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) 50 { 51 PlayerAni.SetTrigger("BackTriger"); 52 } 53 if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.UpArrow)) 54 { 55 PlayerAni.SetTrigger("StopTriger"); 56 } 57 } 58} 59
結果
下向きに歩いたままです
質問内容
いまやっているトリガーのやり方やほかの方法でやれる方
分かる方がいたら教えてください。
補足
スケールの左右反転はしないです。
「unity animator ブレンドツリー」で検索してみてください。
あなたの回答
tips
プレビュー