public void BuildTileset(TileInstance[] tiles) { //if we are also an intgrid layer, then we already reduced our position in the intGridBuilder if (!Layer.IsIntGridLayer) { RoundTilemapPos(); } _tiles = tiles; _tilesetProvider.Clear(); TilesetDefinition definition = EvaluateTilesetDefinition(); if (definition == null) { Debug.LogError($"LDtk: Tileset Definition for {Layer.Identifier} was null."); return; } LDtkRelativeGetterTilesetTexture getter = new LDtkRelativeGetterTilesetTexture(); Texture2D texAsset = getter.GetRelativeAsset(definition, Importer.assetPath); if (texAsset == null) { return; } Importer.SetupAssetDependency(texAsset); LogPotentialTextureProblems(texAsset); //figure out if we have already built a tile in this position. otherwise, build up to the next tilemap. build in a completely seperate p[ath if this is an offset position from the normal standard coordinates for (int i = _tiles.Length - 1; i >= 0; i--) { TileInstance tileData = _tiles[i]; Tilemap tilemap = _tilesetProvider.GetTilemapFromStacks(tileData.UnityPx, (int)Layer.GridSize); Tilemaps.Add(tilemap); TileBase tile = Importer.GetTile(texAsset, tileData.UnitySrc, (int)Layer.TilesetDefinition.TileGridSize); SetTile(tileData, tilemap, tile); } //set each layer's alpha foreach (Tilemap tilemap in _tilesetProvider.Tilemaps) { AddLayerOffset(tilemap); tilemap.SetOpacity(Layer); } }
public void BuildTileset(TileInstance[] tiles) { //if we are also an intgrid layer, then we already reduced our position if (!Layer.IsIntGridLayer) { RoundTilemapPos(); } _tiles = tiles; _tilesetProvider.Clear(); TilesetDefinition definition = Layer.IsAutoLayer ? Layer.Definition.AutoTilesetDefinition : Layer.Definition.TilesetDefinition; LDtkRelativeGetterTilesetTexture getter = new LDtkRelativeGetterTilesetTexture(); Texture2D texAsset = getter.GetRelativeAsset(definition, Importer.assetPath); if (texAsset == null) { return; } //figure out if we have already built a tile in this position. otherwise, build up to the next tilemap for (int i = _tiles.Length - 1; i >= 0; i--) { TileInstance tileData = _tiles[i]; Tilemap tilemap = _tilesetProvider.GetAppropriatelyLayeredTilemap(tileData.UnityPx); Tilemaps.Add(tilemap); TileBase tile = Importer.GetTile(texAsset, tileData.UnitySrc, (int)Layer.TilesetDefinition.TileGridSize); SetTile(tileData, tilemap, tile); } //set each layer's alpha foreach (Tilemap tilemap in _tilesetProvider.Tilemaps) { tilemap.SetOpacity(Layer); } }