- Home /
Animation not being played!
Hello,Im trying to make the closet doors play 2 different animations.I animated the child objects (doors) of the closet and it works great.The problem stands at the part where If I press e (the assigned button) for the second time,the first animation gets repeated instead of playing the other one(the second animation).This is my script :
#pragma strict
var rayLength = 2;
var isOpen1 : boolean = false;
var isOpen2 : boolean = false;
var isOpen3 : boolean = false;
var isOpen4 : boolean = false;
var dcd1 : GameObject;
var dcd2 : GameObject;
var dcd3 : GameObject;
var dcd4 : GameObject;
function Start () {
isOpen1=false;
isOpen2=false;
isOpen3=false;
isOpen4=false;
}
function Update()
{
var hit : RaycastHit;
var forward = transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position, forward, hit, rayLength))
{
if(hit.collider.gameObject.tag == ("cd1"))
{
if(Input.GetKeyDown("e") && isOpen1==false && !animation.isPlaying)
{
dcd1.animation.Play("OpenDeskDoor");
isOpen1=true;
}
else if (Input.GetKeyDown("e") && isOpen1==true && !animation.isPlaying) {
dcd1.animation.Play("CloseDeskDoor");
isOpen1=false;
}
}
if(hit.collider.gameObject.tag == ("cd2"))
{
if(Input.GetKeyDown("e") && isOpen2==false && !animation.isPlaying)
{
dcd2.animation.Play("OpenDeskDoor");
isOpen2=true;
}
else if (Input.GetKeyDown("e") && isOpen2==true && !animation.isPlaying) {
dcd2.animation.Play("CloseDeskDoor");
isOpen2=false;
}
}
if(hit.collider.gameObject.tag == ("cd3"))
{
if(Input.GetKeyDown("e") && isOpen3==false && !animation.isPlaying)
{
dcd3.animation.Play("OpenDeskDoor");
isOpen3=true;
}
else if (Input.GetKeyDown("e") && isOpen3==true && !animation.isPlaying) {
dcd3.animation.Play("CloseDeskDoor");
isOpen3=false;
}
}
if(hit.collider.gameObject.tag == ("cd4"))
{
if(Input.GetKeyDown("e") && isOpen4==false && !animation.isPlaying)
{
dcd4.animation.Play("OpenDeskDoor");
isOpen4=true;
}
else if (Input.GetKeyDown("e") && isOpen4==true && !animation.isPlaying) {
dcd4.animation.Play("CloseDeskDoor");
isOpen4=false;
}
}
}
}
Thank you for bothering to read this!
Try removing the "isOpen1 = false" line, and try again. $$anonymous$$aybe it gets set pretty much at the same time it starts playing so ins$$anonymous$$d it replays the first one?
If that worked then you'll have to set it to false after the closing animation is done entirely.
Your answer
![](https://koobas.hobune.stream/wayback/20220613154334im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Functions being ignored 2 Answers
Wait for a animation to finish in unity3d 3 Answers
Shotgun Spread Issue 1 Answer
Animation position changes everytime I play the animation 1 Answer
Make tranform follow raycast 1 Answer