loading tiled asset fixes

This commit is contained in:
2016-01-23 22:37:29 +06:00
parent bd1c518f87
commit 1d1f7afb05
8 changed files with 377 additions and 986 deletions

View File

@@ -0,0 +1,191 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: 0.16666667
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &234184844
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 234184849}
- 20: {fileID: 234184848}
- 92: {fileID: 234184847}
- 124: {fileID: 234184846}
- 81: {fileID: 234184845}
- 114: {fileID: 234184850}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &234184845
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_Enabled: 1
--- !u!124 &234184846
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_Enabled: 1
--- !u!92 &234184847
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_Enabled: 1
--- !u!20 &234184848
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 350
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &234184849
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
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_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!114 &234184850
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 234184844}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3f01619d3802e814f86f9e6bb965349a, type: 3}
m_Name:
m_EditorClassIdentifier:
_tileSize: 32
_tileRatio: 0.5
_tileAngle: 45
_tileHeight: 32
_stepDepth: 0.1
_startDepth: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 384a2c7f237584c12accf98a1e3dccec
timeCreated: 1453400363
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: d1216209dcca642f8a467ef74633b079
timeCreated: 1453399907
timeCreated: 1453491116
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: 100
spritePixelsToUnits: 1
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,7 @@ using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Reflection;
using System.Collections.Generic;
namespace IsoTools.Tiled.Internal {
@@ -83,8 +84,6 @@ namespace IsoTools.Tiled.Internal {
static void LoadTiledMapLayerFromTmxLayerElem(XElement layer_elem, TiledMapLayerData layer) {
layer.Name = SafeLoadStrFromElemAttr (layer_elem, "name" , layer.Name);
layer.Width = SafeLoadIntFromElemAttr (layer_elem, "width" , layer.Width);
layer.Height = SafeLoadIntFromElemAttr (layer_elem, "height" , layer.Height);
layer.OffsetX = SafeLoadIntFromElemAttr (layer_elem, "offsetx", layer.OffsetX);
layer.OffsetY = SafeLoadIntFromElemAttr (layer_elem, "offsety", layer.OffsetY);
layer.Visible = SafeLoadBoolFromElemAttr(layer_elem, "visible", layer.Visible);
@@ -120,9 +119,7 @@ namespace IsoTools.Tiled.Internal {
tileset.TileCount = SafeLoadIntFromElemAttr(tileset_elem, "tilecount" , tileset.TileCount);
tileset.TileOffsetX = SafeLoadIntFromElemAttr(tileset_elem.Element("tileoffset"), "x" , tileset.TileOffsetX);
tileset.TileOffsetY = SafeLoadIntFromElemAttr(tileset_elem.Element("tileoffset"), "y" , tileset.TileOffsetY);
tileset.Image = SafeLoadStrFromElemAttr(tileset_elem.Element("image" ), "source", tileset.Image);
tileset.ImageWidth = SafeLoadIntFromElemAttr(tileset_elem.Element("image" ), "width" , tileset.ImageWidth);
tileset.ImageHeight = SafeLoadIntFromElemAttr(tileset_elem.Element("image" ), "height", tileset.ImageHeight);
tileset.ImageSource = SafeLoadStrFromElemAttr(tileset_elem.Element("image" ), "source", tileset.ImageSource);
SafeLoadPropertiesFromOwnerElem(tileset_elem, tileset.Properties);
}
@@ -132,9 +129,9 @@ namespace IsoTools.Tiled.Internal {
static void LoadTiledMapTilesetsTextures(string tmx_path, TiledMapData data) {
foreach ( var tileset in data.Tilesets ) {
if ( !string.IsNullOrEmpty(tileset.Image) ) {
if ( !string.IsNullOrEmpty(tileset.ImageSource) ) {
var base_path = Path.GetDirectoryName(tmx_path);
var image_path = Path.Combine(base_path, tileset.Image);
var image_path = Path.Combine(base_path, tileset.ImageSource);
var importer = AssetImporter.GetAtPath(image_path) as TextureImporter;
if ( !importer ) {
@@ -143,9 +140,16 @@ namespace IsoTools.Tiled.Internal {
tileset.Name, image_path));
}
var method_args = new object[2]{0,0};
typeof(TextureImporter)
.GetMethod("GetWidthAndHeight", BindingFlags.NonPublic | BindingFlags.Instance)
.Invoke(importer, method_args);
var image_width = (int)method_args[0];
var image_height = (int)method_args[1];
var meta_data = new List<SpriteMetaData>();
for ( var i = tileset.ImageHeight - tileset.TileHeight - tileset.Margin; i >= tileset.Margin; i -= tileset.TileHeight + tileset.Spacing ) {
for ( var j = tileset.Margin; j <= tileset.ImageWidth - tileset.Margin - tileset.TileWidth; j += tileset.TileWidth + tileset.Spacing ) {
for ( var i = image_height - tileset.TileHeight - tileset.Margin; i >= tileset.Margin; i -= tileset.TileHeight + tileset.Spacing ) {
for ( var j = tileset.Margin; j <= image_width - tileset.Margin - tileset.TileWidth; j += tileset.TileWidth + tileset.Spacing ) {
var meta_elem = new SpriteMetaData();
meta_elem.name = string.Format(
"{0}_{1}",

View File

@@ -9,8 +9,6 @@ namespace IsoTools.Tiled {
[System.Serializable]
public class TiledMapLayerData {
public string Name = "";
public int Width = 0;
public int Height = 0;
public int OffsetX = 0;
public int OffsetY = 0;
public bool Visible = true;
@@ -29,9 +27,7 @@ namespace IsoTools.Tiled {
public int TileCount = 0;
public int TileOffsetX = 0;
public int TileOffsetY = 0;
public string Image = "";
public int ImageWidth = 0;
public int ImageHeight = 0;
public string ImageSource = "";
public List<string> Properties = new List<string>();
}