public void SetupChunks() { int chunkW = vChunkSize.x * vTileSize.x; int chunkH = vChunkSize.x * vTileSize.x; int colCount = Mathf.Max(Screen.width / chunkH + chunkBuffer * 2, 1); int rowCount = Mathf.Max(Screen.height / chunkH + chunkBuffer * 2, 1); int startPosX = -(vChunkSize.x * colCount) / 2 + vGridCenter.x; int startPosY = -(vChunkSize.y * rowCount) / 2 + vGridCenter.y; for (int row = 0; row < rowCount; ++row) { mapRows.Add(null); for (int col = 0; col < colCount; ++col) { int fChunkX = vChunkSize.x * col; int fChunkY = vChunkSize.y * row; Vector2Int vMapPos = new Vector2Int(fChunkX + startPosX, fChunkY + startPosY); TileMapChunk chunk = new TileMapChunk(vMapPos, vChunkSize, vTileSize); chunk.Init(); AddChunk(chunk, col, row, colCount); } } }