using UnityEngine; public sealed class ChildRendererProbe : MonoBehaviour { [SerializeField] private Transform visualRoot; private Renderer cachedRenderer; private void Awake() { Resolve(); } private void Resolve() { cachedRenderer = visualRoot != null ? visualRoot.GetComponentInChildren(true) : null; if (cachedRenderer == null) Debug.LogWarning("Assign a visualRoot containing the intended Renderer.", this); } [ContextMenu("Refresh Cache (Play Mode)")] public void RefreshCache() { if (Application.isPlaying) Resolve(); } [ContextMenu("Toggle Renderer (Play Mode)")] public void ToggleRenderer() { if (!Application.isPlaying || !isActiveAndEnabled) return; if (cachedRenderer == null) { Debug.LogWarning("Renderer is missing; refresh after replacing the visual.", this); return; } cachedRenderer.enabled = !cachedRenderer.enabled; } }