mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
[unity] Improved UpdateWhenInvisible logic for SkeletonRenderSeparator. Closes #2519.
This commit is contained in:
parent
9904398400
commit
77e859cb31
@ -73,6 +73,7 @@ namespace Spine.Unity {
|
||||
[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 () {
|
||||
@ -197,6 +198,10 @@ namespace Spine.Unity {
|
||||
skeletonRenderer.LateUpdateMesh();
|
||||
}
|
||||
|
||||
public void Update () {
|
||||
UpdateVisibility();
|
||||
}
|
||||
|
||||
public void OnDisable () {
|
||||
if (skeletonRenderer == null) return;
|
||||
#if SPINE_OPTIONAL_RENDEROVERRIDE
|
||||
@ -206,6 +211,24 @@ namespace Spine.Unity {
|
||||
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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user