This commit is contained in:
2026-07-09 21:33:33 +02:00
commit 84a2a365f3
2364 changed files with 950134 additions and 0 deletions
@@ -0,0 +1,37 @@
using System.Collections.Generic;
using System.Linq;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Rendering;
namespace VOID.Generic.Triggers
{
[RequireComponent(typeof(Collider))]
public class HideCeilingTrigger : MonoBehaviour, ICameraTrigger
{
public List<GameObject> gameObjectsToHide => _gameObjectsToHide;
[SerializeField, RequiredListLength(MinLength = 1)] private List<GameObject> _gameObjectsToHide = new();
// Cache
private List<Renderer> _renderers = new();
public void Awake()
{
_renderers = _gameObjectsToHide
.Where(go => _gameObjectsToHide.All(other => go == other || !go.transform.IsChildOf(other.transform)))
.SelectMany(go => go.GetComponentsInChildren<Renderer>())
.ToList();
}
public void OnCameraEnter()
{
_renderers.ForEach(renderer => renderer.shadowCastingMode = ShadowCastingMode.ShadowsOnly);
}
public void OnCameraExit()
{
_renderers.ForEach(renderer => renderer.shadowCastingMode = ShadowCastingMode.On);
}
}
}