- Home /
Unity 3D: How to stop/reset 2D sprite animation after releasing key?
ns with a 2D sprite character. But i put in my own. Which has 8 animation positions. For some reason when my guy walks around,then stop, the walkings animation continues to play out then resets to idles.
I need the animation to reset as soon as i release the key.
Im using Animator if you are wondering.
EDITED: Original video with all the keys for each animations. Original Video Here
Second video with only 2 keys per animation, it was a test. Second Video Here
Code Snipet!
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed;
private Animator _animator;
private Rigidbody2D _rigidbody2D;
// Use this for initialization
void Start () {
_animator = GetComponent <Animator>();
_rigidbody2D = GetComponent <Rigidbody2D>();
}
// Update is called once per frame
void Update () {
CheckDirection();
}
void CheckDirection(){
if (Input.GetKey (KeyCode.A))
{
WalkAnimation(-1,0,true);
}
else if (Input.GetKey (KeyCode.D))
{
WalkAnimation(1,0,true);
}
else if (Input.GetKey (KeyCode.W))
{
WalkAnimation(0,1,true);
}
else if (Input.GetKey (KeyCode.S))
{
WalkAnimation(0,-1,true);
}
else
{
_animator.SetBool("Walking", false);
}
}
void FixedUpdate (){
Move();
}
void Move(){
float dirX = _animator.GetFloat("VelX");
float dirY = _animator.GetFloat("VelY");
bool walking = _animator.GetBool("Walking");
if (walking)
{
_rigidbody2D.velocity = new Vector2(dirX,dirY) * speed;
}
else
{
_rigidbody2D.velocity = Vector2.zero;
}
}
void WalkAnimation (float x, float y, bool walking){
_animator.SetFloat("VelX", x);
_animator.SetFloat("VelY", y);
_animator.SetBool("Walking", walking);
}
}
I tried Animation.Stop() and _animator.Stop() but the first one isnt in the class im using and the second just keeps the first state (but i can move the character).
Please help someone.
Your answer
Follow this Question
Related Questions
How to optimize 2D Animations created with 2D Animation packege? (v3.1.1) 0 Answers
How to Change a sprite mesh at a certain frame in an animation clip without script? 1 Answer
Problem with door animation 1 Answer
Can't modify the property changed by 2D animation via LateUpdate() in 1 frame 0 Answers
Animator not adding to GameObject 1 Answer