How can I fix my attack animation?
Hello! I trying to figure out how I can fix my attack animation. My walking / idle & jump animation is working.
But when I try attack nothing happends.
My code:
using UnityEngine; using UnityEngine.UI; using System.Collections;
public class PlayerSettings : MonoBehaviour { Rigidbody rigid; // Player Movement public float moveSpeed; public float maxSpeed; public float jumpSpeed; bool isJumping = true;
// Attacking
public int damage = 10;
public float range = 2f;
bool isAttack = true;
// Coins
public int coinsGain;
public Text coinsText;
// Animations
public Animation anim;
public AnimationClip runAnimation;
public AnimationClip idleAnimation;
public AnimationClip jumpAnimation;
public AnimationClip swordAnimation;
void Start ()
{
rigid = GetComponent<Rigidbody> ();
anim = GetComponent<Animation> ();
}
void Update()
{
//Attacking
Attacking();
// Animations
InitAnimations ();
}
void FixedUpdate ()
{
// Movement
Movement ();
// Jumping
Jumping();
}
void InitAnimations()
{ // When jumping the Run/idle animation stops. if (isJumping) { // Run & Idle start. if (rigid.velocity.magnitude > 0.3f) { anim.CrossFade (runAnimation.name); } else { anim.CrossFade (idleAnimation.name); } } }
void Attacking()
{
if (Input.GetKeyDown (KeyCode.Mouse0) && isAttack)
{
anim.CrossFade (swordAnimation.name);
Debug.Log ("Swing");
}
}
void Movement()
{
float moveHori = Input.GetAxis ("Horizontal");
rigid.AddForce (Vector3.left * moveSpeed * moveHori);
if (rigid.velocity.magnitude > maxSpeed)
{
rigid.velocity = rigid.velocity.normalized * maxSpeed;
}
if (Input.GetAxis("Horizontal") == -1f)
{
Quaternion rightRotation = Quaternion.Euler (0, 90, 0);
transform.rotation = rightRotation;
}
if (Input.GetAxis("Horizontal") == 1f)
{
Quaternion leftRotation = Quaternion.Euler (0, -90, 0);
transform.rotation = leftRotation;
}
}
void Jumping()
{
if (Input.GetKeyDown (KeyCode.Space) && isJumping)
{
rigid.velocity = rigid.velocity + Vector3.up * jumpSpeed * Time.deltaTime;
anim.CrossFade (jumpAnimation.name);
}
}
// Collecting the Coins.
void OnTriggerEnter(Collider col)
{
if (GameObject.FindGameObjectWithTag ("Coins"))
{
coinsGain += 1;
coinsText.text = coinsGain.ToString ();
GetComponent<AudioSource> ().Play ();
}
}
void OnCollisionEnter(Collision colEnter)
{
isJumping = true;
}
void OnCollisionExit(Collision colExit)
{
isJumping = false;
}
}
Your answer
Follow this Question
Related Questions
Simple problem with animations, little delay 1 Answer
Simple problem with animations, little delay 0 Answers
Problem With Character Animations 0 Answers
Problem after importing model from maya 0 Answers