using UnityEngine; using UnityEngine.Rendering; public class CeilingVisibility : MonoBehaviour { private Renderer _renderer; private Camera _cam; void Start() { _renderer = GetComponent(); _cam = Camera.main; } void LateUpdate() { if (_cam == null || _renderer == null) return; // Если камера находится ВЫШЕ потолка if (_cam.transform.position.y > transform.position.y) { // Делаем сам потолок невидимым, но заставляем его отбрасывать тень в комнату! if (_renderer.shadowCastingMode != ShadowCastingMode.ShadowsOnly) { _renderer.shadowCastingMode = ShadowCastingMode.ShadowsOnly; } } else { // Если камера опустилась ВНУТРЬ комнаты (ниже потолка) if (_renderer.shadowCastingMode != ShadowCastingMode.On) { // Возвращаем потолку видимость _renderer.shadowCastingMode = ShadowCastingMode.On; } } } }