31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
|
|
using UnityEngine;
|
||
|
|
using NaughtyAttributes;
|
||
|
|
|
||
|
|
public class ToggleDynamicOcclusion : MonoBehaviour
|
||
|
|
{
|
||
|
|
#if UNITY_EDITOR
|
||
|
|
|
||
|
|
[InfoBox("This script handles Enabling / Disabling \n " +
|
||
|
|
"the dynamic occlusion checkbox on the Renderer component of each object within this relationship. \n\n" +
|
||
|
|
"If you are baking an occlusion map. please make sure you disable FOG and 'PlayerBlockers' and 'MapBoundry' gameObjects.", InfoBoxType.Normal)]
|
||
|
|
[SerializeField][ReadOnly] private string _;
|
||
|
|
|
||
|
|
[Button("Enable Dynamic Occlusion")]
|
||
|
|
private void EnableOcclusion() => TurnOffDynamicOcclusion(gameObject, true);
|
||
|
|
[Button("Disable Dynamic Occlusion")]
|
||
|
|
private void DisableOcclusion() => TurnOffDynamicOcclusion(gameObject, false);
|
||
|
|
|
||
|
|
|
||
|
|
private void TurnOffDynamicOcclusion(GameObject obj, bool enabled)
|
||
|
|
{
|
||
|
|
if (obj == null) { return; }
|
||
|
|
|
||
|
|
if (obj.transform.TryGetComponent(out Renderer rend))
|
||
|
|
{
|
||
|
|
rend.allowOcclusionWhenDynamic = enabled;
|
||
|
|
}
|
||
|
|
foreach (Transform child in obj.transform) { TurnOffDynamicOcclusion(child.gameObject, enabled); }
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
}
|