- Home /
Character rotates erratically when moving with animations.
I added animation to my character using the "Raw Mocap Data" Asset package. The animation for walking is "WalkFWD", idle is "Idle_Ready", and running (not shown) is "Run_Impulse". Now my character rotates oddly to the right when moving using the below script, as well as modulating the speed that it moves in the direction that the user presses (WASD). Here's a video demonstrating it (https://www.youtube.com/watch?v=SkdZnm237EA)
using UnityEngine;
using System.Collections;
public class MazeMove : MonoBehaviour {
public float Velocity = 1F;
public float DecayConst = 0.95F;
public float SprintingFactor = 1.5F;
private CharacterController cc;
private Animator anim;
private Vector3 vel;
private static string[] dirnames = {"movNorth", "movWest", "movSouth", "movEast"};
private static Vector3[] dirVals = {new Vector3(0, 0, 1), new Vector3(-1, 0 , 0), new Vector3(0, 0, -1), new Vector3(1, 0, 0)};
// Use this for initialization
void Start () {
this.cc = GetComponent<CharacterController> ();
this.anim = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Space)) {
transform.position = new Vector3(0, 1, 0);
}
for (int i = 0; i < dirnames.Length; i++) {
bool pressed = Input.GetButton(dirnames[i]);
Debug.Log(dirnames[i] + "=" + pressed);
if (pressed) {
vel += dirVals[i];
}
}
Vector3 fin = vel * Velocity * (Input.GetButton ("Sprint") ? SprintingFactor : 1);
Debug.Log ("CompuVel:" + fin);
anim.SetFloat ("AbsVelocity", fin.magnitude);
//anim.SetFloat ("Turn", 0);
cc.Move(fin * Time.deltaTime);
vel *= DecayConst;
}
Please help, thanks!
I forgot to add the rotation that I want the player to go to to the transform.
cc.transform.rotation = Quaternion.LookRotation(fin, Vector3.up);
Or something...
Your answer
Follow this Question
Related Questions
Mechanim Drift... help 1 Answer
How to get different Animations when different button combos are pressed 2 Answers
How to switch between animations instantly on 2D Blend Tree? 0 Answers
Using old animation clips in Animator 4 Answers
Unity C# Two keys pressing one after another not doing a function vice versa 0 Answers