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");
}
}
}