private Vector3 BirdSpawnPoint() { BoxCollider birdCollider = birdsArea.GetComponent <BoxCollider>(); Bounds birdBounds = birdCollider.bounds; //Choose upper quadrant of bounding box for spawn: SpawnQuadrant spQuad = GetRandowmSpawnQuadrant(); return(GetSpawnPoint(birdBounds, spQuad)); }
private Vector3 GetSpawnPoint(Bounds bounds, SpawnQuadrant spQ) { Vector3 spPoint = Vector3.zero; Vector3 addVector = spPoint; int extX = Mathf.RoundToInt(bounds.extents.x); int extY = Mathf.RoundToInt(bounds.extents.y); int extZ = Mathf.RoundToInt(bounds.extents.z); switch (spQ) { case SpawnQuadrant.One: addVector.y += Random.Range(1, extY); addVector.x -= Random.Range(1, extX); addVector.z += Random.Range(1, extZ); break; case SpawnQuadrant.Two: addVector.y += Random.Range(1, extY); addVector.x -= Random.Range(1, extX); addVector.z -= Random.Range(1, extZ); break; case SpawnQuadrant.Three: addVector.y += Random.Range(1, extY); addVector.x += Random.Range(1, extX); addVector.z -= Random.Range(1, extZ); break; case SpawnQuadrant.Four: addVector.y += Random.Range(1, extY); addVector.x += Random.Range(1, extX); addVector.z += Random.Range(1, extZ); break; default: break; } spPoint = bounds.center + addVector; return(spPoint); }