示例#1
0
        /// <summary>
        /// Set a tile color in the grid position
        /// </summary>
        /// <param name="gridX"></param>
        /// <param name="gridY"></param>
        /// <param name="c0">Bottom left corner</param>
        /// <param name="c1">Bottom right corner</param>
        /// <param name="c2">Top left corner</param>
        /// <param name="c3">Top right corner</param>
        public void SetTileColor(int gridX, int gridY, Color32 c0, Color32 c1, Color32 c2, Color32 c3)
        {
            TilemapChunk chunk      = GetOrCreateTileChunk(gridX, gridY, true);
            int          chunkGridX = (gridX < 0 ? -gridX - 1 : gridX) % k_chunkSize;
            int          chunkGridY = (gridY < 0 ? -gridY - 1 : gridY) % k_chunkSize;

            if (gridX < 0)
            {
                chunkGridX = k_chunkSize - 1 - chunkGridX;
            }
            if (gridY < 0)
            {
                chunkGridY = k_chunkSize - 1 - chunkGridY;
            }
            if (m_allowPaintingOutOfBounds || (gridX >= m_minGridX && gridX <= m_maxGridX && gridY >= m_minGridY && gridY <= m_maxGridY))
            {
                chunk.SetTileColor(chunkGridX, chunkGridY, c0, c1, c2, c3);
            }
        }
示例#2
0
        /// <summary>
        /// Set a tile color in the grid position
        /// </summary>
        /// <param name="gridX"></param>
        /// <param name="gridY"></param>
        /// <param name="c0">Bottom left corner</param>
        /// <param name="c1">Bottom right corner</param>
        /// <param name="c2">Top left corner</param>
        /// <param name="c3">Top right corner</param>
        public void SetTileColor(int gridX, int gridY, TileColor32 tileColor, eBlendMode blendMode = eBlendMode.AlphaBlending)
        {
            TilemapChunk chunk      = GetOrCreateTileChunk(gridX, gridY, true);
            int          chunkGridX = (gridX < 0 ? -gridX - 1 : gridX) % k_chunkSize;
            int          chunkGridY = (gridY < 0 ? -gridY - 1 : gridY) % k_chunkSize;

            if (gridX < 0)
            {
                chunkGridX = k_chunkSize - 1 - chunkGridX;
            }
            if (gridY < 0)
            {
                chunkGridY = k_chunkSize - 1 - chunkGridY;
            }
            if (m_allowPaintingOutOfBounds || (gridX >= m_minGridX && gridX <= m_maxGridX && gridY >= m_minGridY && gridY <= m_maxGridY))
            {
                chunk.SetTileColor(chunkGridX, chunkGridY, tileColor, blendMode);
            }
        }