- Home /
Kill enemy when animation is playing
Hi, was wondering if anyone could help.
I have a player, with a simple animation where it just spins round the Y axis. I would like to be able to kill enemies when this spinning animation is playing, but for the Player to be destroyed if there is a collision and the spinning animation is not playing. At the moment the enemy kills the player OnTriggerEnter. This is the code I have tried but with no results:
function OnTriggerEnter(die : Collider) {
if(die.gameObject.tag == "Player"){
if (!animation.isPlaying)
Destroy(gameObject);
}
}
"kill" is the name of the spinning animation.
If anyone could help that would be great! Thanks in advance
Answer by iwaldrop · Jan 28, 2013 at 11:29 PM
Is your 'kill' animation set to Loop? If it Loop then it will never stop. Plus, you only check if the animation is playing in one frame; even if it isn't Loop it's still going to return false and not check again until the player enters the trigger.
You should use a coroutine to monitor whether the animation is playing, or invoke destroy based on the animation's play time.
Invoke("DestroyMe", animation.clip.length);
void DestroyMe()
{
Destroy(gameObject);
}
This coroutine will automatically destroy the GameObject after the end of the animation. I'm not sure that is what he wondered.
He should maybe set a boolean at the end of the coroutine to false. Then he will know when he is animating or not.
Indeed...after reading the question again it seems he wants to kill the player while this animation is playing.
Setting a flag is probably the way to go. Good call, $$anonymous$$ikilo!
Sorry, may not have made it clear! I would like the player to kill the enemy only while the animation is playing, but if it collides when the animation is not playing, I want the player to die. The animation plays when a BTN is pressed, so in the game that is the attack button if that makes sense.
Your answer
Follow this Question
Related Questions
Death and animations 1 Answer
How to start animation after object is destroyed ? 0 Answers
Destroy trigger so animation only plays once. 1 Answer
Is there a way to tell which way an enemy is going? 1 Answer
Sword Kills Enemies From Far Away 3 Answers