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!