- Home /
How to make door open and close with Input.GetButtonDown?
Hi to everyone I have a small problem, I have a door with animation, and two scripts for it. First one is for a Camera with a RayCasting, and a second controls door animation. When press interact button and looking at the door, door opens but not close when I push the button again, I tried to use else if command but it didn’t helped. Can some one please help me to find what I am missing.
First Script for a camera:
public class DoorRayCast : MonoBehaviour
{
public float Doordistance = 1.5f;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void FixedUpdate()
{
if (Input.GetButtonDown("actButton"))
{
CheckRayCast();
}
}
private void CheckRayCast()
{
Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
RaycastHit data;
if (Physics.Raycast(ray, out data, Doordistance))
{
GetComponent<DoorsActAnim>();
}
}
}
And the second one Door Animation Control
public class DoorsActAnim : MonoBehaviour {
private Animator DoorAnim;
private AnimatorStateInfo BaseLayer;
private AnimatorStateInfo currentBaseState;
static int idleDoor = Animator.StringToHash("Base Layer.apartment_door_idle");
static int openDoor = Animator.StringToHash("Base Layer.apartment_door_open");
static int closeDoor = Animator.StringToHash("Base Layer.apartment_door_close");
public float Doordistance = 1.5f;
// Use this for initialization
void Start()
{
DoorAnim = GetComponent<Animator>();
}
void FixedUpdate () {
currentBaseState = DoorAnim.GetCurrentAnimatorStateInfo(0);
if (Input.GetButtonDown("actButton"))
{
DoorAnim.SetTrigger("Open");
}
else if (Input.GetButtonDown("actButton"))
{
DoorAnim.SetTrigger("Close");
}
}
}
Answer by allenallenallen · Aug 11, 2015 at 01:53 PM
Both if and else if conditions are exactly the same; that's the problem.
if (Input.GetButtonDown("actButton")){
if (/*Current animation state is closed*/)
DoorAnim.SetTrigger("Open");
else
DoorAnim.SetTrigger("Closed");
}
$$anonymous$$any thanks to you it worked, you are my savior
Your answer
Follow this Question
Related Questions
Have damage done to player via colliders, only a certain amount of times? 1 Answer
How would I set up this blend tree for my 2d game 0 Answers
Animations interupting Aim-Script 0 Answers
Have some minor problems. Cant tell if its a script issue or a animator issue. 1 Answer
Issue trying to animate multiple models with same controller and script 0 Answers