mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +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()) {
|
||||
bool componentEnabled = component.enabled;
|
||||
bool checkBox = EditorGUILayout.Toggle("Enable Separator", componentEnabled);
|
||||
if (checkBox != componentEnabled)
|
||||
component.enabled = checkBox;
|
||||
if (checkBox != componentEnabled) {
|
||||
Undo.RecordObject(target, "Enable SkeletonRenderSeparator");
|
||||
EditorUtility.SetObjectEnabled(target, checkBox);
|
||||
}
|
||||
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);
|
||||
|
||||
@ -242,7 +244,7 @@ namespace Spine.Unity.Examples {
|
||||
|
||||
if (slotsReapplyRequired && UnityEngine.Event.current.type == EventType.Repaint) {
|
||||
component.SkeletonRenderer.ReapplySeparatorSlotNames();
|
||||
component.SkeletonRenderer.LateUpdate();
|
||||
component.SkeletonRenderer.LateUpdateMesh();
|
||||
SceneView.RepaintAll();
|
||||
slotsReapplyRequired = false;
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ namespace Spine.Unity {
|
||||
if (!Application.isPlaying) {
|
||||
skeletonRenderer.enabled = false;
|
||||
skeletonRenderer.enabled = true;
|
||||
skeletonRenderer.LateUpdate();
|
||||
skeletonRenderer.LateUpdateMesh();
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -187,6 +187,9 @@ namespace Spine.Unity {
|
||||
mr.probeAnchor = probeAnchor;
|
||||
}
|
||||
}
|
||||
|
||||
if (skeletonRenderer.updateWhenInvisible != UpdateMode.FullUpdate)
|
||||
skeletonRenderer.LateUpdateMesh();
|
||||
}
|
||||
|
||||
public void OnDisable () {
|
||||
@ -194,13 +197,8 @@ namespace Spine.Unity {
|
||||
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||
skeletonRenderer.GenerateMeshOverride -= HandleRender;
|
||||
#endif
|
||||
|
||||
skeletonRenderer.LateUpdate();
|
||||
|
||||
foreach (var partsRenderer in partsRenderers) {
|
||||
if (partsRenderer != null)
|
||||
partsRenderer.ClearMesh();
|
||||
}
|
||||
skeletonRenderer.LateUpdateMesh();
|
||||
ClearPartsRendererMeshes();
|
||||
}
|
||||
|
||||
MaterialPropertyBlock copiedBlock;
|
||||
@ -262,8 +260,13 @@ namespace Spine.Unity {
|
||||
if (currentRenderer != null)
|
||||
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