diff --git a/Assets/IsoTools/Scripts/IsoWorld.cs b/Assets/IsoTools/Scripts/IsoWorld.cs index 38eb311..8b32196 100644 --- a/Assets/IsoTools/Scripts/IsoWorld.cs +++ b/Assets/IsoTools/Scripts/IsoWorld.cs @@ -151,16 +151,25 @@ namespace IsoTools { // // ------------------------------------------------------------------------ - bool IsIsoObjectVisible(IsoObject iso_object) { - var renderers = iso_object.GetComponentsInChildren(); - foreach ( var child_renderer in renderers ) { - if ( child_renderer.isVisible ) { + bool IsGameObjectVisible(GameObject obj) { + var renderer = obj.GetComponent(); + if ( renderer && renderer.isVisible ) { + return true; + } + var obj_transform = obj.transform; + for ( var i = 0; i < obj_transform.childCount; ++i ) { + var child_obj = obj_transform.GetChild(i).gameObject; + if ( IsGameObjectVisible(child_obj) ) { return true; } } return false; } + bool IsIsoObjectVisible(IsoObject iso_object) { + return IsGameObjectVisible(iso_object.gameObject); + } + void MarkEditorWorldDirty() { #if UNITY_EDITOR if ( Application.isEditor ) {