Animation not workng
Hey, I'm following a video tutorial on YouTube about player animation using blend trees. I followed the person's tutorial to the tea and I haven't received any errors in the console, the only problem is, is that when I played the game my player is not playing the animations no matter how many times I clicked. I created a click to move script (c#) for my player to move and (as mention) followed the person's tutorial exactly. I checked the animator window (whilst playing the game) and saw that my player Idle state was still playing and not playing the walking state, no matter where I moved. I think it might be because of :
void Update () {
if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
But I'm no genius! Want I want is for my player to do exactly what the video tutorial did but using (Input.GetMouseButtonDown(0)). Can anyone help me with my problem! Thank you, here is my full code:
using UnityEngine;
using System.Collections;
public class move : MonoBehaviour {
private Animator anim;
public float speed = 15f;
private Vector3 target;
void Start () {
target = transform.position;
anim = GetComponent<Animator> ();
}
void Update () {
if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
float inputX = Input.GetAxis ("Horizontal");
float inputY = Input.GetAxis ("Vertical");
anim.SetFloat ("SpeedX", inputX);
anim.SetFloat ("SpeedY", inputY);
}
void FixedUpdate () {
float LastInputX = Input.GetAxis ("Horizontal");
float LastInputY = Input.GetAxis ("Vertical");
if (LastInputX != 0 || LastInputY != 0) {
anim.SetBool ("walking", true);
if (LastInputX > 0) {
anim.SetFloat ("LastMoveX", 1f);
} else if (LastInputX < 0) {
anim.SetFloat ("LastMoveX", -1f);
} else {
anim.SetBool ("walking", false);
}
if (LastInputY > 0) {
anim.SetFloat ("LastMoveY", 1f);
} else if (LastInputY < 0) {
anim.SetFloat ("LastMoveY", -1f);
} else {
anim.SetFloat ("LastMoveY", 0f);
}
} else {
anim.SetBool ("walking", false);
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612050658im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Animating Through Blend Tree - Method not implemented? 0 Answers
I can't select an animation on blend tree 0 Answers
Advice on how to proceed/Which technique to use [Weapon Animation] 0 Answers
Apply Blend tree Animations on multiple Mesh 0 Answers
can anyone help me out what is wrong with this code? 1 Answer