diff --git a/spine-unity/Assets/spine-unity/Editor/AtlasAssetInspector.cs b/spine-unity/Assets/spine-unity/Editor/AtlasAssetInspector.cs index a58fc9340..72b0a68d0 100644 --- a/spine-unity/Assets/spine-unity/Editor/AtlasAssetInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/AtlasAssetInspector.cs @@ -42,6 +42,7 @@ public class AtlasAssetInspector : Editor { private SerializedProperty atlasFile, materials; void OnEnable () { + SpineEditorUtilities.ConfirmInitialization(); atlasFile = serializedObject.FindProperty("atlasFile"); materials = serializedObject.FindProperty("materials"); } diff --git a/spine-unity/Assets/spine-unity/Editor/SkeletonDataAssetInspector.cs b/spine-unity/Assets/spine-unity/Editor/SkeletonDataAssetInspector.cs index d2dfb0dbe..a47765d54 100644 --- a/spine-unity/Assets/spine-unity/Editor/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/SkeletonDataAssetInspector.cs @@ -60,6 +60,8 @@ public class SkeletonDataAssetInspector : Editor { void OnEnable() { + SpineEditorUtilities.ConfirmInitialization(); + try { atlasAssets = serializedObject.FindProperty("atlasAssets"); skeletonJSON = serializedObject.FindProperty("skeletonJSON"); diff --git a/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs b/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs index 7428c9522..5dbff2514 100644 --- a/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs @@ -36,6 +36,7 @@ public class SkeletonRendererInspector : Editor { protected SerializedProperty skeletonDataAsset, initialSkinName, normals, tangents, meshes, immutableTriangles, submeshSeparators; protected virtual void OnEnable () { + SpineEditorUtilities.ConfirmInitialization(); skeletonDataAsset = serializedObject.FindProperty("skeletonDataAsset"); initialSkinName = serializedObject.FindProperty("initialSkinName"); normals = serializedObject.FindProperty("calculateNormals"); diff --git a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs index 428860341..5624ad02d 100644 --- a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs +++ b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs @@ -146,8 +146,13 @@ public class SpineEditorUtilities : AssetPostprocessor { public static float defaultScale = 0.01f; public static float defaultMix = 0.2f; public static string defaultShader = "Spine/Skeleton"; + public static bool initialized; static SpineEditorUtilities() { + Initialize(); + } + + static void Initialize(){ DirectoryInfo rootDir = new DirectoryInfo(Application.dataPath); FileInfo[] files = rootDir.GetFiles("SpineEditorUtilities.cs", SearchOption.AllDirectories); editorPath = Path.GetDirectoryName(files[0].FullName.Replace("\\", "/").Replace(Application.dataPath, "Assets")); @@ -162,6 +167,12 @@ public class SpineEditorUtilities : AssetPostprocessor { EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemOnGUI; HierarchyWindowChanged(); + initialized = true; + } + + public static void ConfirmInitialization(){ + if(!initialized || Icons.skeleton == null) + Initialize(); } static void HierarchyWindowChanged() {