mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-15 01:12:05 +07:00
PPU for tiled layers
This commit is contained in:
@@ -28,10 +28,10 @@ MonoBehaviour:
|
|||||||
Tiles: 01000000020000000100000010000000170000000e0000000400000001000000030000000200000001000000010000000100000002000000040000000500000006000000080000001300000007000000030000000400000003000000040000000300000001000000010000000200000001000000080000000700000002000000030000000400000004000000010000000200000004000000020000000100000003000000040000000100000002000000020000000100000001000000020000000400000005000000110000000d0000000d000000060000000100000003000000060000000200000003000000050000000d00000006000000030000000800000013000000130000000c0000000e00000001000000020000000a000000110000000d000000150000000f0000000700000003000000020000000400000001000000100000000a0000000600000003000000180000000b000000130000000700000004000000010000000100000005000000060000000100000010000000180000000e000000040000000f00000007000000040000000200000005000000060000000200000008000000160000000d00000009000000180000000e000000020000000400000004000000030000000100000008000000070000000400000001000000080000000c00000018000000170000000e00000002000000010000000200000004000000020000000200000003000000030000000400000003000000080000000f0000000c00000012000000030000000300000003000000050000000d00000006000000010000000200000002000000020000000300000004000000100000001200000001000000020000000400000010000000180000000a00000006000000020000000400000003000000040000000200000014000000120000000200000003000000010000001400000017000000180000000a00000006000000030000000300000004000000030000000800000007000000040000000400000002000000080000000c00000017000000180000001200000004000000030000000100000004000000030000000400000003000000040000000100000002000000080000000c000000180000000e000000040000000100000003000000020000000200000004000000040000000300000004000000030000000200000008000000130000000700000002000000020000000300000003000000020000000100000004000000
|
Tiles: 01000000020000000100000010000000170000000e0000000400000001000000030000000200000001000000010000000100000002000000040000000500000006000000080000001300000007000000030000000400000003000000040000000300000001000000010000000200000001000000080000000700000002000000030000000400000004000000010000000200000004000000020000000100000003000000040000000100000002000000020000000100000001000000020000000400000005000000110000000d0000000d000000060000000100000003000000060000000200000003000000050000000d00000006000000030000000800000013000000130000000c0000000e00000001000000020000000a000000110000000d000000150000000f0000000700000003000000020000000400000001000000100000000a0000000600000003000000180000000b000000130000000700000004000000010000000100000005000000060000000100000010000000180000000e000000040000000f00000007000000040000000200000005000000060000000200000008000000160000000d00000009000000180000000e000000020000000400000004000000030000000100000008000000070000000400000001000000080000000c00000018000000170000000e00000002000000010000000200000004000000020000000200000003000000030000000400000003000000080000000f0000000c00000012000000030000000300000003000000050000000d00000006000000010000000200000002000000020000000300000004000000100000001200000001000000020000000400000010000000180000000a00000006000000020000000400000003000000040000000200000014000000120000000200000003000000010000001400000017000000180000000a00000006000000030000000300000004000000030000000800000007000000040000000400000002000000080000000c00000017000000180000001200000004000000030000000100000004000000030000000400000003000000040000000100000002000000080000000c000000180000000e000000040000000100000003000000020000000200000004000000040000000300000004000000030000000200000008000000130000000700000002000000020000000300000003000000020000000100000004000000
|
||||||
Properties: []
|
Properties: []
|
||||||
- Name: Tile Layer 2
|
- Name: Tile Layer 2
|
||||||
OffsetX: 150
|
OffsetX: 0
|
||||||
OffsetY: -150
|
OffsetY: -100
|
||||||
Visible: 0
|
Visible: 1
|
||||||
Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
Tiles: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000
|
||||||
Properties:
|
Properties:
|
||||||
- em
|
- em
|
||||||
-
|
-
|
||||||
@@ -51,3 +51,4 @@ MonoBehaviour:
|
|||||||
Properties:
|
Properties:
|
||||||
- tileset prop
|
- tileset prop
|
||||||
- hgf
|
- hgf
|
||||||
|
PixelsPerUnit: 100
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 221bc03dca62748f284639c0b399875b
|
guid: 221bc03dca62748f284639c0b399875b
|
||||||
timeCreated: 1454699157
|
timeCreated: 1454747267
|
||||||
licenseType: Free
|
licenseType: Free
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
fileIDToRecycleName:
|
fileIDToRecycleName:
|
||||||
|
|||||||
@@ -268,7 +268,7 @@
|
|||||||
<tile gid="4"/>
|
<tile gid="4"/>
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<layer name="Tile Layer 2" width="14" height="16" visible="0" offsetx="150" offsety="-150">
|
<layer name="Tile Layer 2" width="14" height="16" offsetx="0" offsety="-100">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="em" value=""/>
|
<property name="em" value=""/>
|
||||||
<property name="layer prop" value="765"/>
|
<property name="layer prop" value="765"/>
|
||||||
@@ -334,8 +334,6 @@
|
|||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="4"/>
|
|
||||||
<tile gid="3"/>
|
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
@@ -348,13 +346,6 @@
|
|||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="4"/>
|
|
||||||
<tile gid="3"/>
|
|
||||||
<tile gid="0"/>
|
|
||||||
<tile gid="0"/>
|
|
||||||
<tile gid="0"/>
|
|
||||||
<tile gid="0"/>
|
|
||||||
<tile gid="0"/>
|
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
@@ -476,6 +467,9 @@
|
|||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
@@ -487,6 +481,9 @@
|
|||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
@@ -498,6 +495,9 @@
|
|||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
<tile gid="0"/>
|
<tile gid="0"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
|
<tile gid="1"/>
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup name="Object Layer 1" visible="0">
|
<objectgroup name="Object Layer 1" visible="0">
|
||||||
|
|||||||
@@ -26,29 +26,35 @@ namespace IsoTools.Tiled.Internal {
|
|||||||
var tiled_map = map_go.AddComponent<TiledMap>();
|
var tiled_map = map_go.AddComponent<TiledMap>();
|
||||||
tiled_map.Asset = _asset;
|
tiled_map.Asset = _asset;
|
||||||
tiled_map.Properties = new TiledMapProperties(_asset.Data.Properties);
|
tiled_map.Properties = new TiledMapProperties(_asset.Data.Properties);
|
||||||
foreach ( var layer in _asset.Data.Layers ) {
|
for ( int i = 0, e = _asset.Data.Layers.Count; i < e; ++i ) {
|
||||||
CreateTiledMapLayer(tiled_map, layer);
|
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);
|
var layer_go = new GameObject(layer_data.Name);
|
||||||
layer_go.transform.SetParent(map.transform, false);
|
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);
|
layer_go.SetActive(layer_data.Visible);
|
||||||
|
|
||||||
var tiled_layer = layer_go.AddComponent<TiledMapLayer>();
|
var tiled_layer = layer_go.AddComponent<TiledMapLayer>();
|
||||||
tiled_layer.Asset = _asset;
|
tiled_layer.Asset = _asset;
|
||||||
tiled_layer.Properties = new TiledMapProperties(layer_data.Properties);
|
tiled_layer.Properties = new TiledMapProperties(layer_data.Properties);
|
||||||
for ( var i = 0; i < _asset.Data.Height; ++i ) {
|
for ( var tile_y = 0; tile_y < _asset.Data.Height; ++tile_y ) {
|
||||||
for ( var j = 0; j < _asset.Data.Width; ++j ) {
|
for ( var tile_x = 0; tile_x < _asset.Data.Width; ++tile_x ) {
|
||||||
CreateTileMapTile(tiled_layer, layer_data, j, i);
|
CreateTileMapTile(tiled_layer, layer_index, tile_x, tile_y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateTileMapTile(TiledMapLayer layer, TiledMapLayerData layer_data, int j, int i) {
|
void CreateTileMapTile(TiledMapLayer layer, int layer_index, int tile_x, int tile_y) {
|
||||||
var tile_gid = layer_data.Tiles[i*_asset.Data.Width + j];
|
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 ) {
|
if ( tile_gid > 0 ) {
|
||||||
var asset_path = AssetDatabase.GetAssetPath(_asset);
|
var asset_path = AssetDatabase.GetAssetPath(_asset);
|
||||||
if ( string.IsNullOrEmpty(asset_path) ) {
|
if ( string.IsNullOrEmpty(asset_path) ) {
|
||||||
@@ -85,18 +91,20 @@ namespace IsoTools.Tiled.Internal {
|
|||||||
tile_tileset_sprite_name, tile_gid, layer_data.Name));
|
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.SetParent(layer.transform, false);
|
||||||
|
|
||||||
tile_go.transform.localPosition =
|
tile_go.transform.localPosition =
|
||||||
iso_world.IsoToScreen(IsoUtils.Vec3FromXY(
|
iso_world.IsoToScreen(IsoUtils.Vec3FromXY(iso_x, iso_y));
|
||||||
-i + _asset.Data.Height - 1,
|
|
||||||
-j + _asset.Data.Width - 1));
|
|
||||||
|
|
||||||
tile_go.transform.localPosition += new Vector3(
|
tile_go.transform.localPosition += new Vector3(
|
||||||
tileset.TileOffsetX / tile_sprite.pixelsPerUnit,
|
tileset.TileOffsetX / _asset.PixelsPerUnit,
|
||||||
tileset.TileOffsetY / tile_sprite.pixelsPerUnit,
|
tileset.TileOffsetY / _asset.PixelsPerUnit,
|
||||||
-(i + j) * iso_world.stepDepth);
|
(iso_x + iso_y + layer_index) * iso_world.stepDepth);
|
||||||
|
|
||||||
var tiled_tile = tile_go.AddComponent<TiledMapTile>();
|
var tiled_tile = tile_go.AddComponent<TiledMapTile>();
|
||||||
tiled_tile.Asset = _asset;
|
tiled_tile.Asset = _asset;
|
||||||
@@ -124,7 +132,12 @@ namespace IsoTools.Tiled.Internal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override void OnInspectorGUI() {
|
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") ) {
|
if ( GUILayout.Button("Create tiled map on scene") ) {
|
||||||
var map_go = new GameObject("TiledMap");
|
var map_go = new GameObject("TiledMap");
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ namespace IsoTools.Tiled {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class TiledMapAsset : ScriptableObject {
|
public class TiledMapAsset : ScriptableObject {
|
||||||
public TiledMapData Data = new TiledMapData();
|
public TiledMapData Data = new TiledMapData();
|
||||||
|
public float PixelsPerUnit = 100.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user