diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index 7f530ca..aa1724f 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -64,11 +64,11 @@
-
-
-
+
+
+
/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
diff --git a/Assets/IsoTools/Scripts/Internal/Editor/IsoObjectEditor.cs b/Assets/IsoTools/Scripts/Internal/Editor/IsoObjectEditor.cs
index 0bd6720..ae38b40 100644
--- a/Assets/IsoTools/Scripts/Internal/Editor/IsoObjectEditor.cs
+++ b/Assets/IsoTools/Scripts/Internal/Editor/IsoObjectEditor.cs
@@ -16,11 +16,11 @@ namespace IsoTools.Internal {
var iso_world = GameObject.FindObjectOfType();
if ( iso_world ) {
_positions = targets
- .Where(p => p as IsoObject)
+ .Where(p => p is IsoObject)
.Select(p => p as IsoObject)
.ToDictionary(p => p, p => p.transform.position);
_iso_zpositions = targets
- .Where(p => p as IsoObject)
+ .Where(p => p is IsoObject)
.Select(p => p as IsoObject)
.ToDictionary(p => p, p => p.position.z);
_center = _viewCenter = _positions.Aggregate(Vector3.zero, (AccIn, p) => {
diff --git a/Assets/IsoTools/Scripts/Internal/IsoUtils.cs b/Assets/IsoTools/Scripts/Internal/IsoUtils.cs
index 8afe345..03ed446 100644
--- a/Assets/IsoTools/Scripts/Internal/IsoUtils.cs
+++ b/Assets/IsoTools/Scripts/Internal/IsoUtils.cs
@@ -348,7 +348,7 @@ namespace IsoTools.Internal {
// ---------------------------------------------------------------------
//
- // ChangeX
+ // XChange
//
// ---------------------------------------------------------------------
@@ -404,6 +404,34 @@ namespace IsoTools.Internal {
return c;
}
+ // -----------------------------
+ // ColorChange
+ // -----------------------------
+
+ public static Color ColorChangeA(Color color, float a) {
+ var c = color;
+ c.a = a;
+ return c;
+ }
+
+ public static Color ColorChangeR(Color color, float r) {
+ var c = color;
+ c.r = r;
+ return c;
+ }
+
+ public static Color ColorChangeG(Color color, float g) {
+ var c = color;
+ c.g = g;
+ return c;
+ }
+
+ public static Color ColorChangeB(Color color, float b) {
+ var c = color;
+ c.b = b;
+ return c;
+ }
+
// ---------------------------------------------------------------------
//
// Approximately
@@ -517,19 +545,21 @@ namespace IsoTools.Internal {
}
}
- public static void DrawRect(IsoWorld iso_world, Rect rect, float z, Color color) {
+ public static void DrawGrid(IsoWorld iso_world, Vector3 pos, Vector3 size, Color color) {
if ( iso_world ) {
Handles.color = color;
- var points = new Vector3[]{
- new Vector3(rect.x, rect.y, z),
- new Vector3(rect.x, rect.y + rect.height, z),
- new Vector3(rect.x + rect.width, rect.y + rect.height, z),
- new Vector3(rect.x + rect.width, rect.y, z)
- };
- Handles.DrawLine(points[0], points[1]);
- Handles.DrawLine(points[1], points[2]);
- Handles.DrawLine(points[2], points[3]);
- Handles.DrawLine(points[3], points[0]);
+ var size_x = Mathf.RoundToInt(size.x);
+ var size_y = Mathf.RoundToInt(size.y);
+ for ( var i = 0; i <= size_x; ++i ) {
+ Handles.DrawLine(
+ iso_world.IsoToScreen(new Vector3(pos.x + i, pos.y + 0.0f , pos.z)),
+ iso_world.IsoToScreen(new Vector3(pos.x + i, pos.y + size_y, pos.z)));
+ }
+ for ( var i = 0; i <= size_y; ++i ) {
+ Handles.DrawLine(
+ iso_world.IsoToScreen(new Vector3(pos.x + 0.0f , pos.y + i, pos.z)),
+ iso_world.IsoToScreen(new Vector3(pos.x + size_x, pos.y + i, pos.z)));
+ }
}
}
#endif
diff --git a/Assets/IsoTools/Scripts/IsoTile.cs b/Assets/IsoTools/Scripts/IsoTile.cs
deleted file mode 100644
index 07e9116..0000000
--- a/Assets/IsoTools/Scripts/IsoTile.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-namespace IsoTools {
- public class IsoTile : MonoBehaviour {
- }
-} // namespace IsoTools
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoTileLayer.cs b/Assets/IsoTools/Scripts/IsoTileLayer.cs
deleted file mode 100644
index 355126a..0000000
--- a/Assets/IsoTools/Scripts/IsoTileLayer.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-namespace IsoTools {
- public class IsoTileLayer : MonoBehaviour {
- }
-} // namespace IsoTools
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoTileMap.cs b/Assets/IsoTools/Scripts/IsoTileMap.cs
deleted file mode 100644
index f48414a..0000000
--- a/Assets/IsoTools/Scripts/IsoTileMap.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using UnityEngine;
-
-namespace IsoTools {
- [RequireComponent(typeof(IsoObject))]
- public class IsoTileMap : MonoBehaviour {
- }
-} // namespace IsoTools
\ No newline at end of file
diff --git a/Assets/IsoTools/Tiled/Examples/Maps.meta b/Assets/IsoTools/Tiled/Examples/Maps.meta
new file mode 100644
index 0000000..3fa60e3
--- /dev/null
+++ b/Assets/IsoTools/Tiled/Examples/Maps.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 9c2fbdd96ea4a4c8797c486bbc633541
+folderAsset: yes
+timeCreated: 1454257185
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.asset b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset
similarity index 96%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.asset
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset
index a1617d4..9906084 100644
--- a/Assets/IsoTools/Tiled/Examples/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: 0
- OffsetY: 0
- Visible: 1
- Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ OffsetX: 150
+ OffsetY: -150
+ Visible: 0
+ Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Properties:
- layer prop
- 765
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.asset.meta b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset.meta
similarity index 65%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.asset.meta
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset.meta
index b827d0a..22d8477 100644
--- a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.asset.meta
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.asset.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: 4b96dccad0a464c0c8462411423c292a
-timeCreated: 1453399907
+guid: 7b6bd76df16f04c1aadbdf1c8812c49a
+timeCreated: 1454257185
licenseType: Free
NativeFormatImporter:
userData:
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.png b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png
similarity index 100%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.png
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.png.meta b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta
similarity index 99%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.png.meta
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.png.meta
index cfeb884..0071438 100644
--- a/Assets/IsoTools/Tiled/Examples/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: d1216209dcca642f8a467ef74633b079
-timeCreated: 1453491116
+guid: 221bc03dca62748f284639c0b399875b
+timeCreated: 1454267285
licenseType: Free
TextureImporter:
fileIDToRecycleName:
@@ -68,7 +68,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
- spritePixelsToUnits: 1
+ spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
similarity index 98%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
index 090dac0..77f4cfa 100644
--- a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx
@@ -268,7 +268,7 @@
-
+
@@ -334,6 +334,8 @@
+
+
@@ -346,10 +348,8 @@
-
-
-
-
+
+
diff --git a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx.meta b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx.meta
similarity index 64%
rename from Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx.meta
rename to Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx.meta
index 4e8c5a4..a587654 100644
--- a/Assets/IsoTools/Tiled/Examples/isometric_grass_and_water.tmx.meta
+++ b/Assets/IsoTools/Tiled/Examples/Maps/isometric_grass_and_water.tmx.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: b5c11b9c26a8e45329ed18f3df13478d
-timeCreated: 1453399906
+guid: 16b40ea9c34624e40bfb804614c5ae92
+timeCreated: 1454257185
licenseType: Free
DefaultImporter:
userData:
diff --git a/Assets/IsoTools/Tiled/Examples/Scenes.meta b/Assets/IsoTools/Tiled/Examples/Scenes.meta
new file mode 100644
index 0000000..ceb9481
--- /dev/null
+++ b/Assets/IsoTools/Tiled/Examples/Scenes.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 0727e91b8e19c4622b2fb287b71ec633
+folderAsset: yes
+timeCreated: 1454257201
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/IsoTools/Tiled/Examples/TiledScene.unity b/Assets/IsoTools/Tiled/Examples/Scenes/TiledScene.unity
similarity index 55%
rename from Assets/IsoTools/Tiled/Examples/TiledScene.unity
rename to Assets/IsoTools/Tiled/Examples/Scenes/TiledScene.unity
index a263c5b..624515f 100644
--- a/Assets/IsoTools/Tiled/Examples/TiledScene.unity
+++ b/Assets/IsoTools/Tiled/Examples/Scenes/TiledScene.unity
@@ -85,45 +85,6 @@ NavMeshSettings:
cellSize: 0.16666667
manualCellSize: 0
m_NavMeshData: {fileID: 0}
---- !u!1 &40999084
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 4
- m_Component:
- - 4: {fileID: 40999085}
- - 114: {fileID: 40999086}
- m_Layer: 0
- m_Name: TileLayer1
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &40999085
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 40999084}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1457742461}
- m_RootOrder: 1
---- !u!114 &40999086
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 40999084}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: a91f3c41a71c5484f9af8489443ef844, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!1 &234184844
GameObject:
m_ObjectHideFlags: 0
@@ -181,11 +142,11 @@ Camera:
y: 0
width: 1
height: 1
- near clip plane: 0.3
+ near clip plane: -0.3
far clip plane: 1000
field of view: 60
orthographic: 1
- orthographic size: 350
+ orthographic size: 3
m_Depth: -1
m_CullingMask:
serializedVersion: 2
@@ -206,7 +167,7 @@ Transform:
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalPosition: {x: 0, y: 2, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
@@ -222,106 +183,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 3f01619d3802e814f86f9e6bb965349a, type: 3}
m_Name:
m_EditorClassIdentifier:
- _tileSize: 16
+ _tileSize: 0.32
_tileRatio: 0.5
_tileAngle: 45
- _tileHeight: 16
+ _tileHeight: 0.32
_stepDepth: 0.1
_startDepth: 1
---- !u!1 &1457742458
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 4
- m_Component:
- - 4: {fileID: 1457742461}
- - 114: {fileID: 1457742460}
- - 114: {fileID: 1457742459}
- m_Layer: 0
- m_Name: TileMap
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!114 &1457742459
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1457742458}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 65223c9354c874240a67280485a6b300, type: 3}
- m_Name:
- m_EditorClassIdentifier:
---- !u!114 &1457742460
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1457742458}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 9a9c584f9a39449438abc7ba59a68778, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- _mode: 0
- _size: {x: 1, y: 1, z: 1}
- _position: {x: 0, y: 0, z: 0}
- _isAlignment: 1
- _isShowBounds: 1
---- !u!4 &1457742461
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1457742458}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children:
- - {fileID: 1959786508}
- - {fileID: 40999085}
- m_Father: {fileID: 0}
- m_RootOrder: 1
---- !u!1 &1959786507
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 4
- m_Component:
- - 4: {fileID: 1959786508}
- - 114: {fileID: 1959786509}
- m_Layer: 0
- m_Name: TileLayer0
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1959786508
-Transform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1959786507}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 1457742461}
- m_RootOrder: 0
---- !u!114 &1959786509
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 1959786507}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: a91f3c41a71c5484f9af8489443ef844, type: 3}
- m_Name:
- m_EditorClassIdentifier:
diff --git a/Assets/IsoTools/Tiled/Examples/TiledScene.unity.meta b/Assets/IsoTools/Tiled/Examples/Scenes/TiledScene.unity.meta
similarity index 100%
rename from Assets/IsoTools/Tiled/Examples/TiledScene.unity.meta
rename to Assets/IsoTools/Tiled/Examples/Scenes/TiledScene.unity.meta
diff --git a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
index 8a28894..0b2fe83 100644
--- a/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
+++ b/Assets/IsoTools/Tiled/Internal/Editor/TiledMapAssetEditor.cs
@@ -1,64 +1,138 @@
using UnityEngine;
using UnityEditor;
using IsoTools.Tiled;
+using IsoTools.Internal;
+using System;
+using System.IO;
+using System.Linq;
namespace IsoTools.Tiled.Internal {
[CustomEditor(typeof(TiledMapAsset))]
public class TiledMapAssetEditor : Editor {
TiledMapAsset _asset = null;
+ // ------------------------------------------------------------------------
+ //
+ // Functions
+ //
+ // ------------------------------------------------------------------------
+
+ void CreateTiledMap(GameObject map_go) {
+ var iso_object = map_go.AddComponent();
+ iso_object.mode = IsoObject.Mode.Mode3d;
+ iso_object.position = Vector3.zero;
+ iso_object.size = IsoUtils.Vec3FromXY(_asset.Data.Height, _asset.Data.Width);
+ iso_object.isAlignment = true;
+ iso_object.isShowBounds = true;
+
+ var tiled_map = map_go.AddComponent();
+ tiled_map.Asset = _asset;
+ foreach ( var layer in _asset.Data.Layers ) {
+ CreateTiledMapLayer(tiled_map, layer);
+ }
+ }
+
+ void CreateTiledMapLayer(TiledMap map, TiledMapLayerData layer_data) {
+ 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.SetActive(layer_data.Visible);
+
+ var tiled_layer = layer_go.AddComponent();
+ tiled_layer.Asset = _asset;
+ 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);
+ }
+ }
+ }
+
+ void CreateTileMapTile(TiledMapLayer layer, TiledMapLayerData layer_data, int j, int i) {
+ var tile_gid = layer_data.Tiles[i*_asset.Data.Width + j];
+ if ( tile_gid > 0 ) {
+ var asset_path = AssetDatabase.GetAssetPath(_asset);
+ if ( string.IsNullOrEmpty(asset_path) ) {
+ throw new UnityException(string.Format(
+ "not found tiled map asset ({0}) path",
+ _asset.name));
+ }
+
+ var iso_world = GameObject.FindObjectOfType();
+ if ( !iso_world ) {
+ throw new UnityException("not found IsoWorld");
+ }
+
+ var tileset = FindTilesetByTileGid(tile_gid);
+ if ( tileset == null ) {
+ throw new UnityException(string.Format(
+ "tileset for tile ({0}) on layer ({1}) not found",
+ tile_gid, layer_data.Name));
+ }
+
+ var tile_tileset_sprite_name = string.Format(
+ "{0}_{1}",
+ Path.GetFileNameWithoutExtension(tileset.ImageSource),
+ tile_gid);
+ var tileset_assets = AssetDatabase.LoadAllAssetsAtPath(
+ Path.Combine(Path.GetDirectoryName(asset_path), tileset.ImageSource));
+ var tile_sprite = tileset_assets
+ .Where(p => p is Sprite && p.name == tile_tileset_sprite_name)
+ .Select(p => p as Sprite)
+ .FirstOrDefault();
+ if ( !tile_sprite ) {
+ throw new UnityException(string.Format(
+ "sprite ({0}) for tile ({1}) on layer ({2}) not found",
+ tile_tileset_sprite_name, tile_gid, layer_data.Name));
+ }
+
+ var tile_go = new GameObject(string.Format("Tile_{0}_{1}", j, i));
+ 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));
+
+ tile_go.transform.localPosition += new Vector3(
+ tileset.TileOffsetX / tile_sprite.pixelsPerUnit,
+ tileset.TileOffsetY / tile_sprite.pixelsPerUnit,
+ -(i + j) * iso_world.stepDepth);
+
+ var tiled_tile = tile_go.AddComponent();
+ tiled_tile.Asset = _asset;
+
+ var tile_spr = tile_go.AddComponent();
+ tile_spr.sprite = tile_sprite;
+ }
+ }
+
+ TiledMapTilesetData FindTilesetByTileGid(int tile_gid) {
+ return _asset.Data.Tilesets.Find(p => {
+ return tile_gid >= p.FirstGid && tile_gid < p.FirstGid + p.TileCount;
+ });
+ }
+
+ // ------------------------------------------------------------------------
+ //
+ // Messages
+ //
+ // ------------------------------------------------------------------------
+
void OnEnable() {
_asset = target as TiledMapAsset;
}
public override void OnInspectorGUI() {
DrawDefaultInspector();
- if ( GUILayout.Button("Create prefab") ) {
- //TestTestTest();
- }
- }
-
- /*
- void TestTestTest() {
- foreach ( var layer in _asset.Data.Layers ) {
- for ( var i = 0; i < _asset.Data.Height; ++i ) {
- for ( var j = 0; j < _asset.Data.Width; ++j ) {
- var tile_gid = layer.Tiles[i*_asset.Data.Width + j];
- var tileset_data = FindTilesetByGid(tile_gid);
- if ( tileset_data != null ) {
- var sp_go = new GameObject();
- var sp = sp_go.AddComponent();
- var assets = AssetDatabase.LoadAllAssetsAtPath(
- string.Format("Assets/IsoTools/Tiled/Examples/{0}",
- tileset_data.ImageSource));
-
- foreach ( var asset in assets ) {
- var aaa = asset as Sprite;
- if ( aaa && aaa.name == string.Format("{0}_{1}", Path.GetFileNameWithoutExtension(tileset_data.ImageSource), tile_gid) ) {
- var go = new GameObject(string.Format("{0}_{1}", j, i));
- var iso_object = go.AddComponent();
- iso_object.position = new Vector3(-i, -j, 0.0f);
- iso_object.size = Vector3.one;
- //iso_object.isShowBounds = true;
- sp.sprite = aaa;
- sp.transform.SetParent(go.transform, false);
- sp.transform.localPosition = new Vector3(tileset_data.TileOffsetX, tileset_data.TileOffsetY, 0.0f);
- break;
- }
- }
- }
- }
+ if ( GUILayout.Button("Create tiled map on scene") ) {
+ var map_go = new GameObject("TiledMap");
+ try {
+ CreateTiledMap(map_go);
+ } catch ( Exception e ) {
+ Debug.LogErrorFormat("Create tiled map error: {0}", e.Message);
+ DestroyImmediate(map_go, true);
}
}
}
-
- TiledMapTilesetData FindTilesetByGid(int gid) {
- foreach ( var tileset in _asset.Data.Tilesets ) {
- if ( gid >= tileset.FirstGid && gid < tileset.FirstGid + tileset.TileCount ) {
- return tileset;
- }
- }
- return null;
- }*/
}
} // namespace IsoTools.Tiled.Internal
\ No newline at end of file
diff --git a/Assets/IsoTools/Tiled/TiledMap.cs b/Assets/IsoTools/Tiled/TiledMap.cs
new file mode 100644
index 0000000..38fe12a
--- /dev/null
+++ b/Assets/IsoTools/Tiled/TiledMap.cs
@@ -0,0 +1,58 @@
+using UnityEngine;
+using IsoTools.Internal;
+using System.Collections.Generic;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+namespace IsoTools.Tiled {
+ [ExecuteInEditMode, DisallowMultipleComponent]
+ [RequireComponent(typeof(IsoObject))]
+ public class TiledMap : MonoBehaviour {
+
+ public TiledMapAsset Asset = null;
+
+ // ------------------------------------------------------------------------
+ //
+ // Functions
+ //
+ // ------------------------------------------------------------------------
+
+ // ------------------------------------------------------------------------
+ //
+ // Messages
+ //
+ // ------------------------------------------------------------------------
+
+ void Awake() {
+ }
+
+ void OnEnable() {
+ }
+
+ void OnDisable() {
+ }
+
+ #if UNITY_EDITOR
+ void Reset() {
+ }
+
+ void OnValidate() {
+ }
+
+ void OnDrawGizmos() {
+ var iso_object = GetComponent();
+ if ( iso_object.isShowBounds && iso_object.isoWorld ) {
+ IsoUtils.DrawGrid(
+ iso_object.isoWorld,
+ iso_object.position, iso_object.size,
+ IsoUtils.ColorChangeA(Color.green, 0.5f));
+ }
+ }
+
+ void Update() {
+ }
+ #endif
+ }
+} // namespace IsoTools.Tiled
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoTileMap.cs.meta b/Assets/IsoTools/Tiled/TiledMap.cs.meta
similarity index 100%
rename from Assets/IsoTools/Scripts/IsoTileMap.cs.meta
rename to Assets/IsoTools/Tiled/TiledMap.cs.meta
diff --git a/Assets/IsoTools/Tiled/TiledMapLayer.cs b/Assets/IsoTools/Tiled/TiledMapLayer.cs
new file mode 100644
index 0000000..5f0f239
--- /dev/null
+++ b/Assets/IsoTools/Tiled/TiledMapLayer.cs
@@ -0,0 +1,15 @@
+using UnityEngine;
+using IsoTools.Internal;
+using System.Collections.Generic;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+namespace IsoTools.Tiled {
+ [ExecuteInEditMode, DisallowMultipleComponent]
+ public class TiledMapLayer : MonoBehaviour {
+
+ public TiledMapAsset Asset = null;
+ }
+} // namespace IsoTools.Tiled
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoTile.cs.meta b/Assets/IsoTools/Tiled/TiledMapLayer.cs.meta
similarity index 76%
rename from Assets/IsoTools/Scripts/IsoTile.cs.meta
rename to Assets/IsoTools/Tiled/TiledMapLayer.cs.meta
index f5112a1..fa197d5 100644
--- a/Assets/IsoTools/Scripts/IsoTile.cs.meta
+++ b/Assets/IsoTools/Tiled/TiledMapLayer.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: 6151a74ad7049489693493e10480103a
-timeCreated: 1453567204
+guid: 2683a35aa9e5c4d7786be4a908523bbb
+timeCreated: 1454267808
licenseType: Free
MonoImporter:
serializedVersion: 2
diff --git a/Assets/IsoTools/Tiled/TiledMapTile.cs b/Assets/IsoTools/Tiled/TiledMapTile.cs
new file mode 100644
index 0000000..38f4f98
--- /dev/null
+++ b/Assets/IsoTools/Tiled/TiledMapTile.cs
@@ -0,0 +1,15 @@
+using UnityEngine;
+using IsoTools.Internal;
+using System.Collections.Generic;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+namespace IsoTools.Tiled {
+ [ExecuteInEditMode, DisallowMultipleComponent]
+ public class TiledMapTile : MonoBehaviour {
+
+ public TiledMapAsset Asset = null;
+ }
+} // namespace IsoTools.Tiled
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoTileLayer.cs.meta b/Assets/IsoTools/Tiled/TiledMapTile.cs.meta
similarity index 76%
rename from Assets/IsoTools/Scripts/IsoTileLayer.cs.meta
rename to Assets/IsoTools/Tiled/TiledMapTile.cs.meta
index 0ad9f58..9b63a76 100644
--- a/Assets/IsoTools/Scripts/IsoTileLayer.cs.meta
+++ b/Assets/IsoTools/Tiled/TiledMapTile.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: a91f3c41a71c5484f9af8489443ef844
-timeCreated: 1453567185
+guid: 6aede06b08d82497586194285ed30f71
+timeCreated: 1454274398
licenseType: Free
MonoImporter:
serializedVersion: 2
diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset
index f0ccdde..444646b 100644
--- a/ProjectSettings/EditorSettings.asset
+++ b/ProjectSettings/EditorSettings.asset
@@ -10,3 +10,6 @@ EditorSettings:
m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d
m_DefaultBehaviorMode: 1
m_SpritePackerMode: 2
+ m_SpritePackerPaddingPower: 1
+ m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
+ m_ProjectGenerationRootNamespace:
diff --git a/UnityIso.userprefs b/UnityIso.userprefs
index 70e21fb..9a0da8e 100644
--- a/UnityIso.userprefs
+++ b/UnityIso.userprefs
@@ -1,12 +1,14 @@
-
+
-
-
-
-
-
+
+
+
+
+
+
+