Skip to content

Commit

Permalink
[unity] Improved UpdateWhenInvisible logic for SkeletonRenderSeparator.
Browse files Browse the repository at this point in the history
Closes #2519.
  • Loading branch information
HaraldCsaszar committed May 6, 2024
1 parent 9904398 commit 77e859c
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public class SkeletonRenderSeparator : MonoBehaviour {
[Tooltip("Copies MeshRenderer flags into each parts renderer")]
public bool copyMeshRendererFlags = true;
public List<Spine.Unity.SkeletonPartsRenderer> partsRenderers = new List<SkeletonPartsRenderer>();
[System.NonSerialized] public bool isVisible = true;

#if UNITY_EDITOR
void Reset () {
Expand Down Expand Up @@ -197,6 +198,10 @@ public class SkeletonRenderSeparator : MonoBehaviour {
skeletonRenderer.LateUpdateMesh();
}

public void Update () {
UpdateVisibility();
}

public void OnDisable () {
if (skeletonRenderer == null) return;
#if SPINE_OPTIONAL_RENDEROVERRIDE
Expand All @@ -206,6 +211,24 @@ public class SkeletonRenderSeparator : MonoBehaviour {
ClearPartsRendererMeshes();
}

public void UpdateVisibility () {
foreach (SkeletonPartsRenderer partsRenderer in partsRenderers) {
if (partsRenderer == null) continue;

if (partsRenderer.MeshRenderer.isVisible) {
if (!isVisible) {
skeletonRenderer.OnBecameVisible();
isVisible = true;
}
return;
}
}
if (isVisible) {
isVisible = false;
skeletonRenderer.OnBecameInvisible();
}
}

MaterialPropertyBlock copiedBlock;

void HandleRender (SkeletonRendererInstruction instruction) {
Expand Down

0 comments on commit 77e859c

Please sign in to comment.