diff --git a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset
index 61046c9..60ca3c0 100644
--- a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset
@@ -28,10 +28,10 @@ MonoBehaviour:
Tiles: 01000000020000000100000010000000170000000e0000000400000001000000030000000200000001000000010000000100000002000000040000000500000006000000080000001300000007000000030000000400000003000000040000000300000001000000010000000200000001000000080000000700000002000000030000000400000004000000010000000200000004000000020000000100000003000000040000000100000002000000020000000100000001000000020000000400000005000000110000000d0000000d000000060000000100000003000000060000000200000003000000050000000d00000006000000030000000800000013000000130000000c0000000e00000001000000020000000a000000110000000d000000150000000f0000000700000003000000020000000400000001000000100000000a0000000600000003000000180000000b000000130000000700000004000000010000000100000005000000060000000100000010000000180000000e000000040000000f00000007000000040000000200000005000000060000000200000008000000160000000d00000009000000180000000e000000020000000400000004000000030000000100000008000000070000000400000001000000080000000c00000018000000170000000e00000002000000010000000200000004000000020000000200000003000000030000000400000003000000080000000f0000000c00000012000000030000000300000003000000050000000d00000006000000010000000200000002000000020000000300000004000000100000001200000001000000020000000400000010000000180000000a00000006000000020000000400000003000000040000000200000014000000120000000200000003000000010000001400000017000000180000000a00000006000000030000000300000004000000030000000800000007000000040000000400000002000000080000000c00000017000000180000001200000004000000030000000100000004000000030000000400000003000000040000000100000002000000080000000c000000180000000e000000040000000100000003000000020000000200000004000000040000000300000004000000030000000200000008000000130000000700000002000000020000000300000003000000020000000100000004000000
Properties: []
- Name: Tile Layer 2
- OffsetX: 150
- OffsetY: -150
- Visible: 0
- Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ OffsetX: 0
+ OffsetY: -100
+ Visible: 1
+ Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000
Properties:
- em
-
@@ -51,3 +51,4 @@ MonoBehaviour:
Properties:
- tileset prop
- hgf
+ PixelsPerUnit: 100
diff --git a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta
index deaef57..1999c5e 100644
--- a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 221bc03dca62748f284639c0b399875b
-timeCreated: 1454699157
+timeCreated: 1454747267
licenseType: Free
TextureImporter:
fileIDToRecycleName:
diff --git a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
index 77f4cfa..fb3cfc8 100644
--- a/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
@@ -268,7 +268,7 @@
-
+
@@ -334,8 +334,6 @@
-
-
@@ -348,13 +346,6 @@
-
-
-
-
-
-
-
@@ -476,6 +467,9 @@
+
+
+
@@ -487,6 +481,9 @@
+
+
+
@@ -498,6 +495,9 @@
+
+
+
diff --git a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
index d773f24..e667b3b 100644
--- a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
+++ b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
@@ -26,29 +26,35 @@ namespace IsoTools.Tiled.Internal {
var tiled_map = map_go.AddComponent();
tiled_map.Asset = _asset;
tiled_map.Properties = new TiledMapProperties(_asset.Data.Properties);
- foreach ( var layer in _asset.Data.Layers ) {
- CreateTiledMapLayer(tiled_map, layer);
+ for ( int i = 0, e = _asset.Data.Layers.Count; i < e; ++i ) {
+ CreateTiledMapLayer(tiled_map, i);
}
}
- void CreateTiledMapLayer(TiledMap map, TiledMapLayerData layer_data) {
+ void CreateTiledMapLayer(TiledMap map, int layer_index) {
+ var layer_data = _asset.Data.Layers[layer_index];
+
var layer_go = new GameObject(layer_data.Name);
layer_go.transform.SetParent(map.transform, false);
- layer_go.transform.localPosition = IsoUtils.Vec3FromXY(layer_data.OffsetX, -layer_data.OffsetY);
+ layer_go.transform.localPosition = IsoUtils.Vec3FromXY(
+ layer_data.OffsetX / _asset.PixelsPerUnit,
+ -layer_data.OffsetY / _asset.PixelsPerUnit);
layer_go.SetActive(layer_data.Visible);
var tiled_layer = layer_go.AddComponent();
tiled_layer.Asset = _asset;
tiled_layer.Properties = new TiledMapProperties(layer_data.Properties);
- for ( var i = 0; i < _asset.Data.Height; ++i ) {
- for ( var j = 0; j < _asset.Data.Width; ++j ) {
- CreateTileMapTile(tiled_layer, layer_data, j, i);
+ for ( var tile_y = 0; tile_y < _asset.Data.Height; ++tile_y ) {
+ for ( var tile_x = 0; tile_x < _asset.Data.Width; ++tile_x ) {
+ CreateTileMapTile(tiled_layer, layer_index, tile_x, tile_y);
}
}
}
- void CreateTileMapTile(TiledMapLayer layer, TiledMapLayerData layer_data, int j, int i) {
- var tile_gid = layer_data.Tiles[i*_asset.Data.Width + j];
+ void CreateTileMapTile(TiledMapLayer layer, int layer_index, int tile_x, int tile_y) {
+ var layer_data = _asset.Data.Layers[layer_index];
+
+ var tile_gid = layer_data.Tiles[tile_y * _asset.Data.Width + tile_x];
if ( tile_gid > 0 ) {
var asset_path = AssetDatabase.GetAssetPath(_asset);
if ( string.IsNullOrEmpty(asset_path) ) {
@@ -85,18 +91,20 @@ namespace IsoTools.Tiled.Internal {
tile_tileset_sprite_name, tile_gid, layer_data.Name));
}
- var tile_go = new GameObject(string.Format("Tile_{0}_{1}", j, i));
+ var iso_x = -tile_y + _asset.Data.Height - 1;
+ var iso_y = -tile_x + _asset.Data.Width - 1;
+
+ var tile_go = new GameObject(string.Format(
+ "Tile_{0}_{1}", iso_x, iso_y));
tile_go.transform.SetParent(layer.transform, false);
tile_go.transform.localPosition =
- iso_world.IsoToScreen(IsoUtils.Vec3FromXY(
- -i + _asset.Data.Height - 1,
- -j + _asset.Data.Width - 1));
+ iso_world.IsoToScreen(IsoUtils.Vec3FromXY(iso_x, iso_y));
tile_go.transform.localPosition += new Vector3(
- tileset.TileOffsetX / tile_sprite.pixelsPerUnit,
- tileset.TileOffsetY / tile_sprite.pixelsPerUnit,
- -(i + j) * iso_world.stepDepth);
+ tileset.TileOffsetX / _asset.PixelsPerUnit,
+ tileset.TileOffsetY / _asset.PixelsPerUnit,
+ (iso_x + iso_y + layer_index) * iso_world.stepDepth);
var tiled_tile = tile_go.AddComponent();
tiled_tile.Asset = _asset;
@@ -124,7 +132,12 @@ namespace IsoTools.Tiled.Internal {
}
public override void OnInspectorGUI() {
- DrawDefaultInspector();
+ var ppu_prop = serializedObject.FindProperty("PixelsPerUnit");
+ if ( ppu_prop != null ) {
+ serializedObject.UpdateIfDirtyOrScript();
+ EditorGUILayout.Slider(ppu_prop, Mathf.Epsilon, 1000);
+ serializedObject.ApplyModifiedProperties();
+ }
if ( GUILayout.Button("Create tiled map on scene") ) {
var map_go = new GameObject("TiledMap");
try {
diff --git a/Assets/IsoTools/Tiled/TiledMapAsset.cs b/Assets/IsoTools/Tiled/TiledMapAsset.cs
index eb19985..5b15899 100644
--- a/Assets/IsoTools/Tiled/TiledMapAsset.cs
+++ b/Assets/IsoTools/Tiled/TiledMapAsset.cs
@@ -44,6 +44,7 @@ namespace IsoTools.Tiled {
}
public class TiledMapAsset : ScriptableObject {
- public TiledMapData Data = new TiledMapData();
+ public TiledMapData Data = new TiledMapData();
+ public float PixelsPerUnit = 100.0f;
}
}