using UnityEngine;
using UnityEngine.Rendering;

public class CeilingVisibility : MonoBehaviour
{
    private Renderer _renderer;
    private Camera _cam;

    void Start()
    {
        _renderer = GetComponent<Renderer>();
        _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;
            }
        }
    }
}