Esempio n. 1
0
    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);
            }
        }
    }