Unity – Repeiting a function
Invoke Repeat
#pragma strict
var x: int;
function Start()
{
// InvokeRepeiting (function name, delay time in seconds, repeat every x seconds...)
InvokeRepeating("myFunction", 2, 1);
}
function myFunction()
{
var x = x++;
Debug.Log("Invoked " + x);
}
The result is:
Invoked 0
Invoked 1
Invoked 2
Invoked 3
… to infinity and beyond!
Cancel Invoke
// Starting in 2 seconds.
// a projectile will be launched every 0.3 seconds
var projectile : Rigidbody;
InvokeRepeating("LaunchProjectile", 2, 0.3);
// Cancels the repeating invoke call,
// when the user pressed the ctrl button
function Update() {
if (Input.GetButton ("Fire1"))
CancelInvoke("LaunchProjectile");
}
function LaunchProjectile () {
instance = Instantiate(projectile);
instance.velocity = Random.insideUnitSphere * 5;
}