Instantiate and object around the perimeter of an area inside of an area. (C#)
So I have a 3x3 grid of 400mx400m squares and there is a 100mx100m space inside each at the center. I want to instantiate objects within the 400mx400m square but not within the 100mx100m at random positions.
currently how I get the spawn position to instantiate with is this do this is with this: coords2 = new Vector3(Random.Range(-400,0), 1, Random.Range(0, 400));
(Example for the left middle square in the 3x3 grid.) Y is constant and I am getting a random X and Y value, this gets a random space within the square but will still spawn within the 100x100 square.
This creates kind of a square with a line going from one corner to the other making each side of the line acceptable spawn locations within the 400mx400m square, I need it to exclude the area in the center. Can I do this with one set of coordinates and still get a random range?
I also can't seem to find a way to get all the values between two numbers say something like math.range(0 to 100) that returns 1,2,3,4...99 if I could that would be useful for something like (pseudo code) if(intantiatedObject.transform.position.x > math.range(0 to 5000)) {Don't spawn there.} (Using Unity 5.3.1f1)
Answer by ParadoxSolutions · Jan 12, 2016 at 12:52 AM
I Don't know why I did not think of this at first, I will just add a check after instantiation and if the object is in the coordinate range I don't want it to spawn in it will delete it and get new cords.
if(instantiatedObject.transform.position.x > bounds1 && (instantiatedObject.transform.position.z < bounds2)
{GetRandomCoords(); InstantiateObject();}
I guess I solved this myself.
Your answer
![](https://koobas.hobune.stream/wayback/20220612055523im_/https://answers.unity.com/themes/thub/images/avi.jpg)