SummerGame/Assets/Scripts/CeilingVisibility.cs

38 lines
1.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}
}