- Home /
Random target not working
What am i trying to achieve? I'm trying to make a turret that finds a random enemy, and target it. Targetting the enemy works.
But it's not random. All my turrets seem to target the same enemy even tho i bind a random variable to it.
Note : The random enemy is selected by the var rand = Random.Range(0, count);
void UpdateCount()
{
count = targetArray.Length-1;
}
void UpdateTargetArray()
{
//Check for new enemies.
//Refill the array with the new enemies.
targetArray = GameObject.FindGameObjectsWithTag ("Enemy");
UpdateCount ();
if (count > 0)
{
//Set the target for the turret.
var rand = Random.Range (0, count);
Debug.Log (rand.ToString ());
target = targetArray [rand];
}
}
Part of the problem may be that Random.Range(int,int) excludes the max. So you would want to do
count = targetArray.Length;
This probably isn't the whole thing, though.
If i don't count = targetArray.Length -1; i will get the error ' IndexOutOfRangeException' cause of how an array works. If the array has 1 object in it. The array length is 1, but you call it by array[0], hence the -1 !
The way that you are using the Random.Range function it should work the way I said... anyway, that's a $$anonymous$$or problem.
I guess this might be a stupid question to ask in reference to the above.. But is that script being handled by every turret, or are the turrets being guided from one instance of that script?
If its figuring the random value once and assigning it to all the guns that would make sense as to why you're having them all target the same enemy.
The script is attached to the prefab. As soon as i spawn the prefab, it creates the turret. So it should be, that every turret has it's own '' $$anonymous$$d '', right?
Try printing out the targetarray length, see if it changes correctly with GameObject.FindGameObjectsWithTag ("Enemy");
.
Your answer
Follow this Question
Related Questions
Instantiate Random 3D Objects/platforms that dont overlap 1 Answer
Calling 2 specific random float numbers in random.range using array not working! 2 Answers
How can I randomly create a number and then delete it to stop repeating 3 Answers
Random between -1 and 1 2 Answers
Creating a record of values generated with Random.Range 1 Answer