|
Hi I need to know how to delay lines of code. For example I have an enemy that has animation and all that stuff, and its purpose is like a suicide bomber, so it charges the player and if he shoots it, it will explode leaving a cloud of smoke behind, but the problem is I need it so when my a certain time is reached the enemy will be destroyed, but in code after a certain time it will just run three lines of code in an if statement that will destroy it. The code I'm using to destroy my enemy is below and the three lines that need to run in a certain amount of time are in the if statement. Its all in java, and if you can make a public float variable for the timed code that would be great. Thanks so much. var stars : ParticleEmitter; var explosion : AudioClip; function OnCollisionEnter (collision : Collision) { if(collider.gameObject.tag == "Untagged") { //Delay the three lines below Destroy(gameObject); audio.PlayOneShot(explosion); } }
(comments are locked)
|
|
To delay a function, all you need is 'yield'. You can either wait until a given function is completed or a set number of seconds. example: SelfDestruct() would be a different function that destroys the gameobject and creates the particle effect (or whatever) and is called on collision with a projectile. The above code would call SelfDestruct() 7.5 seconds after the object is created.
(comments are locked)
|
|
Phillipp is right, but if you just want to destroy something delayed, you can simply use the second version of Destroy that takes an additional delay value ;)
(comments are locked)
|

This is UnityScript (Unity's implementation of JavaScript), which is very different from Java. Just FYI.
Please format code when posting, thanks.