How do I get my character to stop moving while he is attacking?
I'm trying to make it so when my player attacks, he cant move until the attack is over. Here is my main code: using System.Collections; using System.Collections.Generic; using UnityEngine;
public class playerController : MonoBehaviour { //player body private Rigidbody2D myRigidBody; //Speeds public float moveSpeed; public float jumpSpeed; //Ground check
 //Goes to the x,y,z of an object, checks to see if they are on the ground
 public Transform groundCheck;
 //Creates the canMove variable to true or false
 public bool canMove;
 //Creates a value to set the raidus of the Ground Check
 public float groundCheckRadius;
 //Whether or not the play is on the ground
 public bool isGrounded;
 //Value to say whether or not the player is attacking
 private float isAttacking;
 //allows you to define a layer as ground
 public LayerMask whatIsGround;
 
 
 //Animator
 private Animator myAnim;
 // Use this for initialization
 void Start () {
     //Starts the RigidBody Action
     myRigidBody = GetComponent<Rigidbody2D>();
     //Starts the animator
     myAnim = GetComponent<Animator>();
 }
 
 // Update is called once per frame
 void Update () {
     //Checks if the player is on the ground
     isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround);
     if (Input.GetAxisRaw("Horizontal") > 0)
     {
         myRigidBody.velocity = new Vector3(moveSpeed, myRigidBody.velocity.y, 0f);
         //Line 1 to make the player animation flip when turning around
         transform.localScale = new Vector3(1f, 1f, 1f);
         //Solves a bug where you can spam the attack
         isAttacking = 0;
     } else if (Input.GetAxisRaw("Horizontal") < 0)
     {
         myRigidBody.velocity = new Vector3(-moveSpeed, myRigidBody.velocity.y, 0f);
         //Line 2 to make the player animation flip when turning around
         transform.localScale = new Vector3(-1f, 1f, 1f);
         //Solves a bug where you can spam the attack
         isAttacking = 0;
     } else
     {
         //Stops the player from sliding after the button is let go of
         myRigidBody.velocity = new Vector3(0f, myRigidBody.velocity.y, 0f);
     }
     //Jumping
     if(Input.GetButtonDown("Jump") && isGrounded)
     {
         myRigidBody.velocity = new Vector3(myRigidBody.velocity.x, jumpSpeed, 0f);
     }
     //Attacking
     if(Input.GetButtonDown("Fire1") && isGrounded)
     {
         //Sets the isAttacking to 1, aka TRUE so it will play the attacking animation in game
         isAttacking = 1;
         canMove = false;
     }
     else
     {
         //Sets the isAttacking to 0, aka FALSE so it wont play the attacking animation in game
         isAttacking = 0;
     }
     //Sets speed for the animator to only a positive value
     myAnim.SetFloat("Speed", Mathf.Abs(myRigidBody.velocity.x));
     //Sets the "Grounded" bool in the animator to what isGrounded is
     myAnim.SetBool("Grounded", isGrounded);
     //Says whether or not the player wants to attack or not
     myAnim.SetFloat("Attacking", isAttacking);
 }
}
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
I want to stop movement of character while i call animation like Kick Jump Punch etc.. Please help 1 Answer
How to make your program unable to use after one year? 1 Answer
Unity 2D: Game freezes after the first frame of a particular animation 1 Answer
Play animation on mouse click 1 Answer
Animation play not working C# 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                