Reputation: 229
I'm new to Unity and I'm struggling with configuring my animations properly. I have attack animation which must be played if you press the spacebar once and if you hold it it should play until you release. My problem is that once you release the spacebar the animator instantly returns to the previous state. I've read some answer on the Unity Q&A site but they are all concerning a script that runs the animations, I don't use any script to run mine I'm simply setting them up in the animator. How can I fix this ? The way I change the animation is by switching the value of a boolean variable like this :
if(Input.GetKeyDown(KeyCode.Space))
{
IsAttacking = true;
}
if(Input.GetKeyUp(KeyCode.Space))
{
IsAttacking = false;
}
playerAnimator.SetBool("IsAttacking", IsAttacking);
My project is in 2D if it matters.
Upvotes: 1
Views: 102
Reputation: 36
Click this -> Exit Time
Inside of the animator you have your clips. Clicking on a clip with bring up this inspector view. You'll want to check Has Exit Time'.
Then you'll want to set your exit time to 1 and your transition duration to 0.
By setting those values, you're telling the animator that this animation MUST finish before moving on to the next one.
Upvotes: 1