- Home /
Character Animator controller/movement
Character Animator controller/movement I have a character that i want to move with animation in the animator control but it seems the character not moving and also the idle seems to freeze after it play. and i am getting this error.
UnityEngine.Animator' does not contain a definition for GetCurrentAnimatorStateInfonimatorStateInfo' and no extension method GetCurrentAnimatorStateInfonimatorStateInfo' of type `UnityEngine.Animator' could be found (are you missing a using directive or an assembly reference?)
and also this UnityException: Tag: gameController is not defined. PlayerMovement.Awake () (at Assets/Scripts/PlayerMovement.cs:16)
this is the scripts. HashsIDs
using UnityEngine; using System.Collections;
public class HashIDs : MonoBehaviour
{ public int dyingState;
public int deadBool;
public int locomotionState;
public int speedFloat;
public int ReloadingBool;
public int FiringBool;
public int playerInsigthBool;
public int shotfloat;
public int aimWeightfloat;
public int angularSpeedFloat;
public int openBool;
public int ReloadState;
void Awake()
{
dyingState = Animator.StringToHash ("Base Layer.Dying");
deadBool = Animator.StringToHash ("Dead");
locomotionState = Animator.StringToHash("Base Layer.locomotion");
ReloadState = Animator.StringToHash("Reloading.Reload");
speedFloat = Animator.StringToHash("Speed");
ReloadingBool = Animator.StringToHash("Reloading");
FiringBool = Animator.StringToHash ("Firing");
playerInsigthBool = Animator.StringToHash("PlayerInSight");
shotfloat = Animator.StringToHash("Shot");
aimWeightfloat = Animator.StringToHash ("AngularSpeed");
openBool = Animator.StringToHash ("Open");
}
}
and the player movement scripts
using UnityEngine; using System.Collections;
public class PlayerMovement : MonoBehaviour { public AudioClip FiringClip; public float turnSmoothing = 15f; public float speedDampTime = 0.1f;
private Animator anim;
private HashIDs hash;
void Awake()
{
anim = GetComponent<Animator> ();
hash = GameObject.FindGameObjectWithTag("gameController").GetComponent<HashIDs>();
anim.SetLayerWeight(1, 1f);
}
void FixedUpdate()
{
float h = Input.GetAxis ("Horizontal");
float v = Input.GetAxis ("Vertical");
bool Firing = Input.GetButton("Firing");
MovementManagement(h, v, Firing);
}
void Update()
{
bool Firing = Input.GetButton("Attract");
anim.SetBool (hash.FiringBool, Firing);
AudioManagement (Firing);
}
void MovementManagement(float horizontal, float vertical, bool Firing)
{
anim.SetBool(hash.FiringBool, Firing);
if (horizontal != 0f || vertical != 0f)
{
Rotating (horizontal, vertical);
anim.SetFloat (hash.speedFloat, 2.8f, speedDampTime, Time.deltaTime);
}
else
{
anim.SetFloat (hash.speedFloat, 0f);
}
}
void Rotating(float horizontal, float vertical)
{
Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);
Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up);
Quaternion newRotation = Quaternion.Lerp(GetComponent<Rigidbody>().rotation, targetRotation, turnSmoothing * Time.deltaTime);
GetComponent<Rigidbody>().MoveRotation (newRotation);
}
void AudioManagement(bool firing)
{
if(anim.GetCurrentAnimatorStateInfo(0).nameHash == hash.locomotionState)
{
if (!GetComponent<AudioSource>().isPlaying)
{
GetComponent<AudioSource>().Play ();
}
}
else
{
GetComponent<AudioSource>().Stop();
}
if (firing)
{
AudioSource.PlayClipAtPoint(FiringClip, transform.position);
}
}
}
i don't know what's wrong i really need your helping i am working on this game for while unity3d keep blocking my question and my i just want to know if some thing wrong with my scripts or the animator controller you seems when i put speed to 1.0 on parameter character seems to be moving on it own
here some image of my animator controller i don't really know how to control the animator with scripts that the problem. http://imgh.us/Capture_4909.png http://imgh.us/Capture1_83.png
Answer by Eudaimonium · Sep 06, 2015 at 09:41 PM
Those are errors from the script compiler.
First: Put your code in seperate Code section, use the "101 010" button near text editor field and input your code there, not in plain text.
Because of that, I can barely read what's happening in your code, but apparently you have a typo, somewhere you are using: GetCurrentAnimatorStateInfonimatorStateInfo
, when it really should be:
GetCurrentAnimatorStateInfo
Please fix your code formatting so we can actually read your code, so we can help you with this other undefined tag thing.
Also, this is all quite elementary, these are basically typos in code which do not compile. How exactly are you "working on this game for a while"?
Dude i am being working on this game now for months now i having problem with enemy Ai the movement with the nav mesh agent and sight, health and patrol and shooting my character
Your answer
Follow this Question
Related Questions
2 problems with new animation / animator,2 problems with animation 0 Answers
How to properly detect the end time of an Animation which wait for the end of the previous one ? 1 Answer
Help with animator controllers 1 Answer
why I have to anim.getComponent in update() function when I had done in Start () function 2 Answers
How to create animations that can be edited with scripts in runtime? 1 Answer