- Home /
Attack Animation not working
Hi
I recently got into creating games in Unity and decided to start off with a small 2D game
I used this Unity tutorial to help with the sprite animations and it all worked until I attempted to add in my attack animation in the code and animation and animator tabs but it did not work. Here is my code and where the ** is on either side is the code I have added to attempt to make this attack animation:
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float maxSpeed = 10f;
bool facingRight = true;
Animator anim;
**public bool attack = false;**
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask isGround;
public float jumpForce = 700f;
void Start () {
anim = GetComponent<Animator> ();
}
void FixedUpdate () {
grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, isGround);
anim.SetBool ("Ground", grounded);
anim.SetFloat ("vSpeed", GetComponent<Rigidbody2D>().velocity.y);
float move = Input.GetAxis ("Horizontal");
anim.SetFloat ("speed", Mathf.Abs (move));
GetComponent<Rigidbody2D>().velocity = new Vector2(move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
if (move > 0 && !facingRight)
Flip ();
else if (move < 0 && facingRight)
Flip ();
}
void Update(){
if (grounded && Input.GetKeyDown (KeyCode.Space)) {
anim.SetBool("Ground", false);
GetComponent<Rigidbody2D>().AddForce(new Vector2(0,jumpForce));
**if (grounded && Input.GetKeyDown(KeyCode.C)){**
**anim.SetBool("Attack", true);**
**attack = true;**
}
}
}
void Flip(){
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
I then created the transitions in the animator between the states such as if going from the idle animation state if attack = true then run the attack animation. If you need any more info I can provide it
Thank you very much!
Answer by GiyomuGames · Jun 29, 2015 at 10:00 AM
Hard to debug from here but first try to look at your Animator window while the game is playing. Then press C and see if the "Attack" bool becomes "true". You should be able to see why your animation is not working as expected.
While looking at your animator while the game is running try checking the checkbox of the "Attack"
bool. If it works, then yout animator is right, and the problem may be in your code.
Your answer

Follow this Question
Related Questions
Having trouble with my attack animation code 1 Answer
Create animation from script 0 Answers
how to display a single frame of a sprite animation 1 Answer
Efficient way to instantiate a sprite that plays an animation then destroys itself? (3d space) 1 Answer
add animation frames to existing spritesheet with animations? 0 Answers