- Home /
 
 
               Question by 
               mscdelirium · May 27 at 01:39 PM · 
                proceduralgenerationprocedural generationprocedural-generation  
              
 
              Spawn Floors To Fill Radius, And Remove Out Of Bounds Floors.,Spawn To Fill Radius
Hello, I am trying to make a system that spawns floor tiles (each 10x10 units) next to eachother within a certain radius, and removes the floor tiles that have their center point outside the radius. I do have functions that go about spawning floors around a center floor tile. But this will just create one circle around the center tile, instead of however many are nessecary to fill up a larger radius (currently a radius of 50 units).
Can/Should I use this approach to make it work the way I want to? If not, how else do I go about this?
 private Vector2[] PlaceFloorsAround(Vector2 currentFloorXZ)
     {
 
         Vector2[] newXZs = {
             new Vector2(currentFloorXZ.x + spawnOffset, currentFloorXZ.y),
             new Vector2(currentFloorXZ.x - spawnOffset, currentFloorXZ.y),
             new Vector2(currentFloorXZ.x, currentFloorXZ.y + spawnOffset),
             new Vector2(currentFloorXZ.x, currentFloorXZ.y - spawnOffset),
             new Vector2(currentFloorXZ.x -10.0f, currentFloorXZ.y - 10.0f),
             new Vector2(currentFloorXZ.x + 10.0f, currentFloorXZ.y - 10.0f),
             new Vector2(currentFloorXZ.x + 10.0f, currentFloorXZ.y + 10.0f),
             new Vector2(currentFloorXZ.x - 10.0f, currentFloorXZ.y + 10.0f),
         };
 
 
         foreach (Vector2 newXZ in newXZs)
         {
             if (canSpawnFloor(newXZ))
             {
                 Instantiate(floorPrefab, new Vector3(newXZ.x, floorHeight, newXZ.y), Quaternion.identity, transform);
             }
         }
 
         return newXZs;
     }
 
     private bool canSpawnFloor(Vector2 newXZ)
     {
         LayerMask layerMask = LayerMask.NameToLayer("Floor");
         Collider[] colliders = Physics.OverlapSphere(new Vector3(newXZ.x, floorHeight, newXZ.y), spawnCheckRadius, layerMask);
 
         if (colliders.Length == 0)
         {
             return true;
         }
 
         return false;
     }
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Procedurally generate 3D mesh from 2D image 1 Answer
Procedural Audio in 3D 0 Answers
C# Proceducal Mesh terrain 2 Answers
Procedural generation of blocks 0 Answers