- Home /
Idle and Walk animation don't work at all
Hello everybody, I am developing a game based in the “Unity topic instructions” I’m relatively new in the Video Game Developing. My issue is that animations between “Idle” and “walk” don’t work at all. When I press the play button the Idle animation works perfectly just once, it means in spite of the character is not walking the "Idle animation" does not work at all. Now when I press up button to make the character walk, the character does not make use of the “walk animation” Please can somebody help me with this issue?
Here's also the PlayerMovement using UnityEngine;
public class PlayerMovement : MonoBehaviour
{ public float speed = 6f; // The speed that the player will move at.
Vector3 movement; // The vector to store the direction of the player's movement.
Animator anim; // Reference to the animator component.
Rigidbody playerRigidbody; // Reference to the player's rigidbody.
int floorMask; // A layer mask so that a ray can be cast just at gameobjects on the floor layer.
float camRayLength = 100f; // The length of the ray from the camera into the scene.
//This code was made by Eng. Rodolfo A. Calvo
void Awake()
{
// Create a layer mask for the floor layer.
floorMask = LayerMask.GetMask("Floor");
// Set up references.
anim = GetComponent<Animator> ();
playerRigidbody = GetComponent<Rigidbody> ();
}//end void Awake
void FixedUpdate()
{
// Store the input axes.
float h = Input.GetAxisRaw ("Horizontal");
float v = Input.GetAxisRaw ("Vertical");
Move (h, v); // Move the player around the scene.
Turning (); // Turn the player to face the mouse cursor.
Animating (h, v); // Animate the player.
}//end FixedUpdate
void Move(float h, float v)
{
// Set the movement vector based on the axis input.
movement.Set (h, 0f, v);
// Normalise the movement vector and make it proportional to the speed per second.
movement = movement.normalized * speed * Time.deltaTime;
// Move the player to it's current position plus the movement.
playerRigidbody.MovePosition (transform.position + movement);
//Rodolfo is very smart and handsome
}//end Move
void Turning()
{
// Create a ray from the mouse cursor on screen in the direction of the camera.
Ray camRay = Camera.main.ScreenPointToRay (Input.mousePosition);
// Create a RaycastHit variable to store information about what was hit by the ray.
RaycastHit floorHit;
// Perform the raycast and if it hits something on the floor layer...
if (Physics.Raycast (camRay, out floorHit, camRayLength, floorMask))
{
// Create a vector from the player to the point on the floor the raycast from the mouse hit.
Vector3 playerToMouse = floorHit.point - transform.position;
// Ensure the vector is entirely along the floor plane.
playerToMouse.y = 0f;
// Create a quaternion (rotation) based on looking down the vector from the player to the mouse.
Quaternion newRotation = Quaternion.LookRotation (playerToMouse);
// Set the player's rotation to this new rotation.
playerRigidbody.MoveRotation (newRotation);
}//end if
}//end Turning
void Animating (float h, float v)
{
// Create a boolean that is true if either of the input axes is non-zero.
bool walking = h != 0f || v != 0f;
// Tell the animator whether or not the player is walking.
anim.SetBool ("IsWalking" , walking);
}//end Animating
}
alt textalt text alt text
Yes I did actually! And the parameters are correct as well! And the turning method is also wrong... The character does not turn! I don't know why!
When you press right or left is the walking animation showing up?
that's exactly the problem. It walks but the walking animation does not show up!
Answer by Morgan_DMG · Jan 30, 2015 at 03:38 AM
Make sure that you have your transition parameters set correctly
Make sure in Mechanim that you have put the appropriate animations in the system
It looks like you're doing a Diablo-style movement setup with click to move systems: Investigate the use of NavMesh and NavMeshAgent.
Try this tutorial if you haven't already, it's what I used to learn the Mechanim system and how to use it properly: http://unity3d.com/learn/tutorials/modules/beginner/animation/animator-scripting
If all else fails, you can always create an animation with the animation window and this tutorial: http://unity3d.com/learn/tutorials/modules/beginner/animation/animation-view
I hope some of this helps and, Best of luck!
Your answer
Follow this Question
Related Questions
Animations for combos and more. 0 Answers
2D animations transitioning too quickly and looping before finishing 2 Answers
Animator animation transition twitch at the start 1 Answer
How to change animations direction? 0 Answers
Blend between idle animations using a separate transition animation 1 Answer