diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TiledAssetImporter.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TiledAssetImporter.cs index 9253f2a9..7ea4b2d3 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TiledAssetImporter.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TiledAssetImporter.cs @@ -110,7 +110,7 @@ public void ApplyTemplateToObject(XElement xObject) } } - public void ApplyDefaultSettings() + virtual public void ApplyDefaultSettings() { var settings = ST2USettings.GetOrCreateST2USettings(); m_PixelsPerUnit = settings.PixelsPerUnit; @@ -174,7 +174,7 @@ protected void AssignUnityLayer(SuperCustomProperties properties) } } - private void WrapImportContext(AssetImportContext ctx) + virtual protected void WrapImportContext(AssetImportContext ctx) { var settings = ST2USettings.GetOrCreateST2USettings(); settings.RefreshCustomObjectTypes(); diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TmxAssetImporter.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TmxAssetImporter.cs index 0abc240f..b789281c 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TmxAssetImporter.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Importers/TmxAssetImporter.cs @@ -31,7 +31,7 @@ public partial class TmxAssetImporter : TiledAssetImporter public bool TilesAsObjects { get { return m_TilesAsObjects; } } [SerializeField] - private SortingMode m_SortingMode = SortingMode.Stacked; + private SortingMode m_SortingMode; public SortingMode SortingMode { get { return m_SortingMode; } } [SerializeField] @@ -44,6 +44,23 @@ public partial class TmxAssetImporter : TiledAssetImporter [SerializeField] private List m_InternalTilesets; + override public void ApplyDefaultSettings() + { + base.ApplyDefaultSettings(); + var settings = ST2USettings.GetOrCreateST2USettings(); + m_SortingMode = settings.SortingMode; + EditorUtility.SetDirty(this); + } + + override protected void WrapImportContext(UnityEditor.AssetImporters.AssetImportContext ctx) { + base.WrapImportContext(ctx); + + if ((int)m_SortingMode == 0) + { + m_SortingMode = SuperImportContext.Settings.SortingMode; + } + } + protected override void InternalOnImportAsset() { base.InternalOnImportAsset(); diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettings.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettings.cs index b81ae035..b685cb4f 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettings.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettings.cs @@ -31,6 +31,10 @@ public int EdgesPerEllipse private int m_AnimationFramerate = 20; public int AnimationFramerate { get { return m_AnimationFramerate; } } + [SerializeField] + private SortingMode m_SortingMode = SortingMode.Stacked; + public SortingMode SortingMode { get { return m_SortingMode; } } + [SerializeField] private Material m_DefaultMaterial = null; public Material DefaultMaterial { get { return m_DefaultMaterial; } } diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettingsProvider.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettingsProvider.cs index ab94ad16..f3b71c30 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettingsProvider.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Settings/ST2USettingsProvider.cs @@ -29,6 +29,7 @@ public class SettingsContent public static readonly GUIContent m_PixelsPerUnitContent = new GUIContent("Default Pixels Per Unit", "How many pixels in the sprite correspond to one unit in the world. (Default Setting)"); public static readonly GUIContent m_EdgesPerEllipseContent = new GUIContent("Default Edges Per Ellipse", "How many edges to use when appromixating ellipse/circle colliders. (Default Setting)"); public static readonly GUIContent m_AnimationFramerateContent = new GUIContent("Animation Framerate", "How many frames per second for tile animations."); + public static readonly GUIContent m_SortingModeContent = new GUIContent("Default Sorting Mode", "Set to the default sorting mode you want to be used in newly imported .tmx files imported by SuperTiled2Unity."); public static readonly GUIContent m_DefaultMaterialContent = new GUIContent("Default Material", "Set to the material you want to use for sprites and tiles imported by SuperTiled2Unity. Leave empy to use built-in sprite material."); public static readonly GUIContent m_MaterialMatchingsContent = new GUIContent("Material Matchings", "Match these materials by Tiled Layer names."); public static readonly GUIContent m_ObjectTypesXmlContent = new GUIContent("Object Types Xml", "Set to an Object Types Xml file exported from Tiled Object Type Editor."); @@ -123,6 +124,7 @@ private void DoGuiSettings() { var ppuProperty = m_S2TUSettingsObject.FindProperty("m_PixelsPerUnit"); var edgesProperty = m_S2TUSettingsObject.FindProperty("m_EdgesPerEllipse"); + var sortingModeProperty = m_S2TUSettingsObject.FindProperty("m_SortingMode"); var materialProperty = m_S2TUSettingsObject.FindProperty("m_DefaultMaterial"); var animationPrpoerty = m_S2TUSettingsObject.FindProperty("m_AnimationFramerate"); @@ -144,6 +146,9 @@ private void DoGuiSettings() edgesProperty.intValue = Mathf.Clamp(edgesProperty.intValue, 6, 256); } + // Default Sorting Mode + EditorGUILayout.PropertyField(sortingModeProperty, SettingsContent.m_SortingModeContent); + // Default Material EditorGUILayout.PropertyField(materialProperty, SettingsContent.m_DefaultMaterialContent); EditorGUILayout.Space(); diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/SortingMode.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/SortingMode.cs index bc0227ad..f8bf3695 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/SortingMode.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/SortingMode.cs @@ -2,7 +2,7 @@ { public enum SortingMode { - Stacked = 0, - CustomSortAxis, + Stacked = 10, + CustomSortAxis = 1, } }