From 2cb188e568aa2c378b1ee3bcf91009d11844bbc4 Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 18 May 2017 09:52:13 +0800 Subject: [PATCH] [unity] Some editor fixes. --- .../Editor/SkeletonRendererInspector.cs | 4 ++-- .../Editor/SkeletonGraphicInspector.cs | 2 ++ .../SkeletonGraphic/SkeletonGraphic.cs | 19 +++++++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs b/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs index 6d6f01816..a32a733e5 100644 --- a/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/SkeletonRendererInspector.cs @@ -41,7 +41,7 @@ namespace Spine.Unity.Editor { [CustomEditor(typeof(SkeletonRenderer))] [CanEditMultipleObjects] public class SkeletonRendererInspector : UnityEditor.Editor { - protected static bool advancedFoldout; + public static bool advancedFoldout; protected SerializedProperty skeletonDataAsset, initialSkinName; protected SerializedProperty initialFlipX, initialFlipY; @@ -278,7 +278,7 @@ namespace Spine.Unity.Editor { using (new SpineInspectorUtility.LabelWidthScope()) { // Optimization options if (singleSubmesh != null) EditorGUILayout.PropertyField(singleSubmesh, SingleSubmeshLabel); - if (meshes != null) EditorGUILayout.PropertyField(meshes, MeshesLabel); + //if (meshes != null) EditorGUILayout.PropertyField(meshes, MeshesLabel); if (immutableTriangles != null) EditorGUILayout.PropertyField(immutableTriangles, ImmubleTrianglesLabel); EditorGUILayout.PropertyField(clearStateOnDisable, ClearStateOnDisableLabel); EditorGUILayout.Space(); diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs index 13a97b2e3..79b1ce471 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Editor/SkeletonGraphicInspector.cs @@ -68,6 +68,7 @@ namespace Spine.Unity.Editor { freeze_ = so.FindProperty("freeze"); meshGeneratorSettings_ = so.FindProperty("meshGenerator").FindPropertyRelative("settings"); + meshGeneratorSettings_.isExpanded = SkeletonRendererInspector.advancedFoldout; } public override void OnInspectorGUI () { @@ -85,6 +86,7 @@ namespace Spine.Unity.Editor { } using (new SpineInspectorUtility.BoxScope()) { EditorGUILayout.PropertyField(meshGeneratorSettings_, SpineInspectorUtility.TempContent("Advanced..."), includeChildren: true); + SkeletonRendererInspector.advancedFoldout = meshGeneratorSettings_.isExpanded; } EditorGUILayout.Space(); diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs index c65d7002b..108768b97 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs @@ -50,7 +50,6 @@ namespace Spine.Unity { public float timeScale = 1f; public bool freeze; public bool unscaledTime; - //public bool tintBlack = false; #if UNITY_EDITOR protected override void OnValidate () { @@ -204,8 +203,24 @@ namespace Spine.Unity { if (!string.IsNullOrEmpty(initialSkinName)) skeleton.SetSkin(initialSkinName); - if (!string.IsNullOrEmpty(startingAnimation)) + #if UNITY_EDITOR + if (!string.IsNullOrEmpty(startingAnimation)) { + if (Application.isPlaying) { + state.SetAnimation(0, startingAnimation, startingLoop); + } else { + // Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above. + var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation); + if (animationObject != null) + animationObject.Apply(skeleton, 0f, 0f, false, null, 1f, true, false); + } + Update(0); + } + #else + if (!string.IsNullOrEmpty(startingAnimation)) { state.SetAnimation(0, startingAnimation, startingLoop); + Update(0); + } + #endif } public void UpdateMesh () {