mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
[Unity] SkeletonRenderSeparator: Fixed Update When Invisible modes leading to invisible skeleton. Fixed Enable Separator property not triggering component dirty state/undo. Closes #1960.
This commit is contained in:
parent
88515ec1a9
commit
8f01d089e4
@ -105,8 +105,10 @@ namespace Spine.Unity.Examples {
|
|||||||
using (new SpineInspectorUtility.LabelWidthScope()) {
|
using (new SpineInspectorUtility.LabelWidthScope()) {
|
||||||
bool componentEnabled = component.enabled;
|
bool componentEnabled = component.enabled;
|
||||||
bool checkBox = EditorGUILayout.Toggle("Enable Separator", componentEnabled);
|
bool checkBox = EditorGUILayout.Toggle("Enable Separator", componentEnabled);
|
||||||
if (checkBox != componentEnabled)
|
if (checkBox != componentEnabled) {
|
||||||
component.enabled = checkBox;
|
Undo.RecordObject(target, "Enable SkeletonRenderSeparator");
|
||||||
|
EditorUtility.SetObjectEnabled(target, checkBox);
|
||||||
|
}
|
||||||
if (component.SkeletonRenderer.disableRenderingOnOverride && !component.enabled)
|
if (component.SkeletonRenderer.disableRenderingOnOverride && !component.enabled)
|
||||||
EditorGUILayout.HelpBox("By default, SkeletonRenderer's MeshRenderer is disabled while the SkeletonRenderSeparator takes over rendering. It is re-enabled when SkeletonRenderSeparator is disabled.", MessageType.Info);
|
EditorGUILayout.HelpBox("By default, SkeletonRenderer's MeshRenderer is disabled while the SkeletonRenderSeparator takes over rendering. It is re-enabled when SkeletonRenderSeparator is disabled.", MessageType.Info);
|
||||||
|
|
||||||
@ -242,7 +244,7 @@ namespace Spine.Unity.Examples {
|
|||||||
|
|
||||||
if (slotsReapplyRequired && UnityEngine.Event.current.type == EventType.Repaint) {
|
if (slotsReapplyRequired && UnityEngine.Event.current.type == EventType.Repaint) {
|
||||||
component.SkeletonRenderer.ReapplySeparatorSlotNames();
|
component.SkeletonRenderer.ReapplySeparatorSlotNames();
|
||||||
component.SkeletonRenderer.LateUpdate();
|
component.SkeletonRenderer.LateUpdateMesh();
|
||||||
SceneView.RepaintAll();
|
SceneView.RepaintAll();
|
||||||
slotsReapplyRequired = false;
|
slotsReapplyRequired = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -124,7 +124,7 @@ namespace Spine.Unity {
|
|||||||
if (!Application.isPlaying) {
|
if (!Application.isPlaying) {
|
||||||
skeletonRenderer.enabled = false;
|
skeletonRenderer.enabled = false;
|
||||||
skeletonRenderer.enabled = true;
|
skeletonRenderer.enabled = true;
|
||||||
skeletonRenderer.LateUpdate();
|
skeletonRenderer.LateUpdateMesh();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -187,6 +187,9 @@ namespace Spine.Unity {
|
|||||||
mr.probeAnchor = probeAnchor;
|
mr.probeAnchor = probeAnchor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skeletonRenderer.updateWhenInvisible != UpdateMode.FullUpdate)
|
||||||
|
skeletonRenderer.LateUpdateMesh();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDisable () {
|
public void OnDisable () {
|
||||||
@ -194,13 +197,8 @@ namespace Spine.Unity {
|
|||||||
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||||
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
||||||
#endif
|
#endif
|
||||||
|
skeletonRenderer.LateUpdateMesh();
|
||||||
skeletonRenderer.LateUpdate();
|
ClearPartsRendererMeshes();
|
||||||
|
|
||||||
foreach (var partsRenderer in partsRenderers) {
|
|
||||||
if (partsRenderer != null)
|
|
||||||
partsRenderer.ClearMesh();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialPropertyBlock copiedBlock;
|
MaterialPropertyBlock copiedBlock;
|
||||||
@ -262,8 +260,13 @@ namespace Spine.Unity {
|
|||||||
if (currentRenderer != null)
|
if (currentRenderer != null)
|
||||||
partsRenderers[rendererIndex].ClearMesh();
|
partsRenderers[rendererIndex].ClearMesh();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void ClearPartsRendererMeshes () {
|
||||||
|
foreach (var partsRenderer in partsRenderers) {
|
||||||
|
if (partsRenderer != null)
|
||||||
|
partsRenderer.ClearMesh();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user