public void UpdateTileAsset(Int2 posGrid) { ShipGrid.Tile tile = ShipGrid.GetInstance().GetTile(posGrid); Int2 posSpriteSheet = AssetManager.GetInstance().GetAssetForTile(tile, sorting); Vector2 posTexture = new Vector2(posSpriteSheet.x * PIXELS_PER_UNIT, posSpriteSheet.y * PIXELS_PER_UNIT); Vector2 spriteSheetTilesSize = AssetManager.GetInstance().GetSpriteSheetTilesSize(); Vector2 assetUVMin = new Vector2(); assetUVMin.x = posTexture.x / spriteSheetTilesSize.x; assetUVMin.y = posTexture.y / spriteSheetTilesSize.y; Vector2 assetUVMax = new Vector2(); assetUVMax.x = (posTexture.x + SIZE_TILE * PIXELS_PER_UNIT) / spriteSheetTilesSize.x; assetUVMax.y = (posTexture.y + SIZE_TILE * PIXELS_PER_UNIT) / spriteSheetTilesSize.y; Vector2 assetUVCenter = new Vector2(); assetUVCenter.x = Mathf.Lerp(assetUVMin.x, assetUVMax.x, 0.5f); assetUVCenter.y = Mathf.Lerp(assetUVMin.y, assetUVMax.y, 0.5f); int vertexIndex = GetVertexIndex(posGrid); uvs[vertexIndex + VERTEX_INDEX_BOTTOM_LEFT] = assetUVMin; uvs[vertexIndex + VERTEX_INDEX_TOP_LEFT] = new Vector2(assetUVMin.x, assetUVMax.y); uvs[vertexIndex + VERTEX_INDEX_TOP_RIGHT] = assetUVMax; uvs[vertexIndex + VERTEX_INDEX_BOTTOM_RIGHT] = new Vector2(assetUVMax.x, assetUVMin.y); uvs[vertexIndex + VERTEX_INDEX_CENTER] = assetUVCenter; RotateTile(posGrid, tile.GetRotation(shouldGetTemporary: tile.HasTemporarySettings())); }