system
1
I’m trying to give the player control over the rate of spawn of the 'ballClone’s by pressing shift and - (_) to decrease and shift and = (+) to increase.
But it has no effect in the game, although there are no errors
var rate = 1.0;
var ball : Rigidbody;
private var tick = 0.0;
function Update () {
if (Time.time > tick)
{
tick = Time.time + rate;
var ballClone : Rigidbody = Instantiate(ball, Vector3(0,12,0),Quaternion.identity);
}
if (Input.GetKeyDown("_"))
{
rate = rate - 0.1;
}
if (Input.GetKeyDown("+"))
{
rate = rate + 0.1;
}
}
thought it would be simple, but I’m pretty stuck. Any ideas whats wrong?
Unity does not recognizes Shift+key combinations: it always reads “=” and “-” , no matter if shift is pressed or not - you must check for shift yourself, like this:
...
if (Input.GetKey("left shift") || Input.GetKey("right shift")){
if (Input.GetKeyDown("-")) rate = rate + 0.1;
if (Input.GetKeyDown("=")) rate = rate - 0.1;
}
...
By the way, the logic was reversed: increasing variable rate actually reduces the rate, and vice versa. This was fixed on the code above.