- Home /
How to make objects appear randomly around a spot
I have a game with a spot the player needs to protect from enemies, I want to make the enemies appear randomly around the player (as the title says).
Any Ideas? thanks
Answer by cdrandin · Aug 10, 2013 at 07:46 AM
You could setup spawning points for the enemy to spawn. Store these objects in an array of Transform so you have the location. THen have a script randomly loop through the locations at spawn at a given location
Answer by robertbu · Aug 10, 2013 at 09:10 AM
Here are a couple of ways. They both assume there is some minimum and maximum distance from the current game object to spawn the enemies. That is, you don't want to spawn right on top of the player. This code assumes your are spawning on the XZ plane, and spawns in a circular area around the spawn point.
function FindPosition(min : float, max : float, position : Vector3) : Vector3 {
var pos : Vector3 = Random.insideUnitCircle;
pos.z = pos.y;
pos.y = 0;
return pos * min + pos * Random.Range(0, max-min) + position;
}
This second one assumes that the current game object has a forward parallel to the plane you want to spawn on:
function FindPosition2(min : float, max : float) : Vector3 {
var pos = Quaternion.AngleAxis(Random.Range(0.0, 360.0), transform.up) * transform.forward;
return pos * Random.Range(min, max) + transform.position;
}