- 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
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