using UnityEngine; public class MeshRendererVisibility : MonoBehaviour { public GameObject go_obj; private MeshRenderer[] meshRenderers; // MeshRenderer 목록 private Plane[] cameraFrustumPlanes; // 카메라의 프러스틀럼 평면 private void Start() { meshRenderers = go_obj.GetComponentsInChildren(); } private void Update() { if (DSUtil.CheckNull(meshRenderers)) return; // 카메라의 프러스틀럼 평면 계산 cameraFrustumPlanes = GeometryUtility.CalculateFrustumPlanes(Camera.main); // 각 MeshRenderer의 Bounds가 프러스틀럼에 포함되는지 확인 foreach (var renderer in meshRenderers) { if (GeometryUtility.TestPlanesAABB(cameraFrustumPlanes, renderer.bounds)) { renderer.enabled = true; // 카메라 뷰 내에 있으면 활성화 } else { renderer.enabled = false; // 카메라 뷰 밖에 있으면 비활성화 } } } }