- Home /
[Mecanim] How To Play Animation?
Hello Everyone i want to know how i can play Animation in Mecanim
At this moment i use this code
using UnityEngine;
using System.Collections;
// Require these components when using this script
[RequireComponent(typeof (Animator))]
[RequireComponent(typeof (CapsuleCollider))]
[RequireComponent(typeof (Rigidbody))]
public class BotControlScript : MonoBehaviour
{
[System.NonSerialized]
public float lookWeight; // the amount to transition when using head look
public float animSpeed = 1.5f; // a public setting for overall animator animation speed
public float lookSmoother = 3f; // a smoothing setting for camera motion
public bool useCurves; // a setting for teaching purposes to show use of curves
private Animator anim; // a reference to the animator on the character
private AnimatorStateInfo currentBaseState; // a reference to the current state of the animator, used for base layer
private CapsuleCollider col; // a reference to the capsule collider of the character
static int idleState = Animator.StringToHash("Base Layer.Idle");
static int locoState = Animator.StringToHash("Base Layer.Locomotion"); // these integers are references to our animator's states
void Start ()
{
// initialising reference variables
anim = GetComponent<Animator>();
col = GetComponent<CapsuleCollider>();
if(anim.layerCount ==2)
anim.SetLayerWeight(1, 1);
}
void FixedUpdate ()
{
float h = Input.GetAxis("Horizontal"); // setup h variable as our horizontal input axis
float v = Input.GetAxis("Vertical"); // setup v variables as our vertical input axis
anim.SetFloat("Speed", v); // set our animator's float parameter 'Speed' equal to the vertical input axis
anim.SetFloat("Direction", h); // set our animator's float parameter 'Direction' equal to the horizontal input axis
anim.speed = animSpeed; // set the speed of our animator to the public variable 'animSpeed'
anim.SetLookAtWeight(lookWeight); // set the Look At Weight - amount to use look at IK vs using the head's animation
currentBaseState = anim.GetCurrentAnimatorStateInfo(1); // set our currentState variable to the current state of the Base Layer (0) of animation
}
}
i have Run Animation and Walk Animation and WalkBack how i can play These Animation? What is the Code To Play It
Comment
Answer by aipash20 · Jul 26, 2013 at 05:44 PM
You need to spell locomotion properly, as the code is looking for "Locomotion" not locomation. I assume your "Idle" works. I see this is an old question, but in case someone else has the same issue, check your spelling in Mechanim and make sure it matches the provided scripts.