예제 #1
0
        private static void SetTileFlips(Tilemap tilemap, LDtkDataTile tileData, Vector2Int coord)
        {
            float      rotY   = tileData.FlipX ? 180 : 0;
            float      rotX   = tileData.FlipY ? 180 : 0;
            Quaternion rot    = Quaternion.Euler(rotX, rotY, 0);
            Matrix4x4  matrix = Matrix4x4.TRS(Vector3.zero, rot, Vector3.one);

            tilemap.SetTransformMatrix((Vector3Int)coord, matrix);
        }
예제 #2
0
        private static void BuildTile(LDtkDataLayer layer, LDtkDataTile tileData, LDtkTilesetAsset asset, Tilemap tilemap)
        {
            Vector2Int coord = tileData.LayerPixelPosition / layer.__gridSize;

            coord = LDtkToolOriginCoordConverter.ConvertCell(coord, layer.__cHei);

            Sprite tileSprite = GetTileFromTileset(asset.ReferencedAsset, tileData.SourcePixelPosition, layer.__gridSize);

            Tile tile = ScriptableObject.CreateInstance <Tile>();

            tile.colliderType = Tile.ColliderType.None;
            tile.sprite       = tileSprite;

            Vector3Int co = new Vector3Int(coord.x, coord.y, 0);



            //Tilemap mapToBuildOn = tilemap;

            tilemap.SetTile(co, tile);
            SetTileFlips(tilemap, tileData, coord);
        }