- Home /
Mixamo Character Movement
Hi all, I need to make a Mixamo Fuse Character move when jumping in-air.Below is the code i downloaded with the Locomotion Pack.Could you please help me?
using UnityEngine; using System.Collections;
public class LocomotionScript : MonoBehaviour { private Animator anim;
// Use this for initialization
void Start () {
anim = this.transform.GetComponent<Animator>();
}
void OnGUI () {
GUILayout.Label("CONTROLS");
GUILayout.Label("Movement: W A S D");
GUILayout.Label("Jump: Space");
}
// Update is called once per frame
void Update () {
//float horizontal = Input.GetAxis ("Horizontal");
float vertical = Input.GetAxis ("Vertical");
//anim.SetFloat ("Speed", vertical);
//anim.SetFloat ("Direction", horizontal);
anim.SetFloat("Vertical", vertical, 0.15f, Time.deltaTime);
//anim.SetFloat("Horizontal", horizontal, 0.15f, Time.deltaTime); <- Move left/right
/*
//Procedural rotation input, applied while moving. This allows turning without the need for turning animations.
if (vertical > 0.05f){
if(horizontal > 0.05f)
//this.transform.Rotate(Vector3.up * (Time.deltaTime + 2), Space.World);
if(horizontal < -0.05f)
//this.transform.Rotate(Vector3.up * (Time.deltaTime + -2), Space.World);
}
else if (vertical < -0.05f){
if(horizontal > 0.05f)
//this.transform.Rotate(Vector3.up * (Time.deltaTime + -2), Space.World);
if(horizontal < -0.05f)
//this.transform.Rotate(Vector3.up * (Time.deltaTime + 2), Space.World);
}
*/
//Procedural rotation input for stationary turning
if(Input.GetKey(KeyCode.A)){
anim.SetFloat("Turn", -1, 0.1f, Time.deltaTime);
this.transform.Rotate(Vector3.up * (Time.deltaTime + -2), Space.World);
}
else if (Input.GetKey(KeyCode.D)){
anim.SetFloat("Turn", 1, 0.1f, Time.deltaTime);
this.transform.Rotate(Vector3.up * (Time.deltaTime + 2), Space.World);
}
else { anim.SetFloat("Turn", 0, 0.1f, Time.deltaTime); }
//Pressing the space bar will cause the character to jump
if (Input.GetKey(KeyCode.Space)){
StartCoroutine(TriggerAnimatorBool("Jump"));
}
}
///Triggers the bool of the provided name in the animator.
///The bool is only active for a single frame to prevent looping.
private IEnumerator TriggerAnimatorBool (string name){
anim.SetBool(name, true);
yield return null;
anim.SetBool(name, false);
}
}
screenshot_3.png
(39.4 kB)
Comment
Your answer
Follow this Question
Related Questions
Why won't Character Controller Move Forward while in the Air? 2 Answers
Moving character....northwest...? 1 Answer
Simple Character Movement 1 Answer
wanna know what make my char stop 0 Answers
Moving Forward 1 Answer