Animator Boolean not changing to true in C#,
Hi. I actually found this code on a tutorial online, but for whatever reason, the animation part isn't working for me. For example, when I start the game, I'll notice that the boolean for "isIdle" will be checked off in the parameters in the animator controller (and therefore, my character's idle animation will play). However, moving around will not check off the "isWalking" or "isRunning" booleans. The problem isn't with my transitions; the walking animation plays when I require "isIdle" to be true for its transition.
I've talked to the creator of the code, but he says it works fine for him--I'm not sure why it isn't working for me.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class WalkingScript : MonoBehaviour
{
private float speed = 0;
public float wSpeed;
public float rSpeed;
public float rotSpeed;
public bool isWalking;
public bool isIdle;
public bool isRunning;
static Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{ if (Input.GetKey(KeyCode.LeftShift))
{
speed = rSpeed; //Running
if (Input.GetKey(KeyCode.W))
{
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", true);
anim.SetBool("isIdle", false);
}
else if (Input.GetKey(KeyCode.S))
{
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", true);
anim.SetBool("isIdle", false);
}
else if (Input.GetKey(KeyCode.A))
{
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", true);
anim.SetBool("isIdle", false);
}
else if (Input.GetKey(KeyCode.D))
{
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", true);
anim.SetBool("isIdle", false);
}
else
{
//Is Idle
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", false);
anim.SetBool("isIdle", true);
}
}
//Jump
//Walking
else if (Input.GetKey(KeyCode.W))
{
anim.SetBool("isWalking", true);
anim.SetBool("isRunning", false);
anim.SetBool("isIdle", false); speed = wSpeed;
}
else if (Input.GetKey(KeyCode.S))
{
anim.SetBool("isWalking", true);
anim.SetBool("isRunning", false);
anim.SetBool("isIdle", false); speed = wSpeed;
}
else if (Input.GetKey(KeyCode.D))
{
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", false);
anim.SetBool("isIdle", false); speed = wSpeed;
}
else
{
//Is Idle
anim.SetBool("isWalking", false);
anim.SetBool("isRunning", false);
anim.SetBool("isIdle", true); speed = wSpeed;
}
var z = Input.GetAxis("Vertical") * speed;
var y = Input.GetAxis("Horizontal") * rotSpeed;
transform.Translate(0, 0, z);
transform.Rotate(0, y, 0);
}
}
Let me know what the cause of the problem might be. Help is much appreciated!,
Your answer
Follow this Question
Related Questions
PROBLEM WITH ANIM.SETBOOL NOT WORKING 0 Answers
3D Walk animation script errors 1 Answer
Changing eye texture using bools 0 Answers
How do I apply an animation to a sprite? 0 Answers
Get Time A Bool Has Been True 4 Answers