#[Unity 2Dゲーム]キャラクターが攻撃中に動かなくする方法を教えてください。
現在色んなサイトを拝見してキャラクターの移動と攻撃は作成できたのですが、
攻撃のアニメーション実行中にもキャラクターが移動してしまいます。
色々初心者の自分なりに考えたのですが、挙動が不安定になってしまうので改善できないままに…
改善策を教えてください。
一応コードも載せてみましたがわかりにくくてすいません…
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Controller : MonoBehaviour 6{ 7 Animator animator; 8 Rigidbody2D rb2d; 9 public float Speed = 10f; 10 float Scroll = 0f; 11 bool Attack = false; 12 string State; 13 string SaveState; 14 void Start() 15 { 16 rb2d = GetComponent<Rigidbody2D>(); 17 animator = GetComponent<Animator>(); 18 } 19 void Update() 20 { 21 GetKey(); 22 ChangeState(); 23 ChangeAnimation(); 24 Move(); 25 } 26 void GetKey() 27 { 28 if (Input.GetMouseButtonDown(0)) 29 { 30 Attack = true; 31 } 32 else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) 33 { 34 Scroll = 1f; 35 } 36 else if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) 37 { 38 Scroll = -1f; 39 } 40 else 41 { 42 Scroll = 0; 43 } 44 } 45 void ChangeState() 46 { 47 if (Attack == true) 48 { 49 State = "Attack"; 50 } 51 else if (Scroll != 0) 52 { 53 State = "Run"; 54 } 55 else 56 { 57 State = "Stop"; 58 } 59 } 60 61 void ChangeAnimation() 62 { 63 if (SaveState != State) 64 { 65 switch (State) 66 { 67 case "Stop": 68 animator.SetBool("Run", false); 69 animator.SetBool("Stop", true); 70 animator.SetBool("Attack", false); 71 break; 72 73 case "Run": 74 animator.SetBool("Stop", false); 75 animator.SetBool("Attack", false); 76 animator.SetBool("Run", true); 77 break; 78 79 case "Attack": 80 animator.SetBool("Run", false); 81 animator.SetBool("Stop", false); 82 animator.SetBool("Attack",true); 83 84 break; 85 } 86 } 87 Attack = false; 88 SaveState = State; 89 } 90 void Move() 91 { 92 rb2d.velocity = new Vector2(Scroll * Speed, rb2d.velocity.y); 93 } 94}

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/27 11:58
2018/12/27 12:01
2018/12/27 13:16
2018/12/27 14:20