private List <Sector> FindSectorsNearPlayer() { TilePosition playerTilePosition = Graphics.Vector3ToTilePosition(player.position); TilePosition playerSectorTilePosition = sectorManager.GetSectorTile(playerTilePosition).sectorPosition; List <Sector> sectorsNear = new List <Sector>(); int visibileSectorsRadius = (int)Math.Ceiling(playerUnity.mainCamera.farClipPlane / SectorManager.SECTOR_SIZE) + 1; for (int d = 0; d <= visibileSectorsRadius; d++) { foreach (TilePosition tilePosition in Manhattan.GetTilesAtDistance(d)) { TilePosition t = tilePosition + playerSectorTilePosition; if (t.x >= 0 && t.x < sectorManager.xSectors && t.y >= 0 && t.y < sectorManager.ySectors && t.z >= 0 && t.z < sectorManager.zSectors) { sectorsNear.Add(sectorManager.GetSector(t)); } } } return(sectorsNear); }