using System; using System.Collections.Generic; using UnityEngine; namespace LOS { // Token: 0x02000104 RID: 260 [AddComponentMenu("Line of Sight/LOS Culler")] public class LOSCuller : MonoBehaviour { // Token: 0x17000029 RID: 41 // (get) Token: 0x060015E6 RID: 5606 RVA: 0x0019C535 File Offset: 0x0019A735 // (set) Token: 0x060015E7 RID: 5607 RVA: 0x0019C53D File Offset: 0x0019A73D public LayerMask RaycastLayerMask { get { return this.m_RaycastLayerMask; } set { this.m_RaycastLayerMask = value; } } // Token: 0x1700002A RID: 42 // (get) Token: 0x060015E8 RID: 5608 RVA: 0x0019C546 File Offset: 0x0019A746 public bool Visibile { get { return this.m_IsVisible; } } // Token: 0x060015E9 RID: 5609 RVA: 0x0019C54E File Offset: 0x0019A74E private void OnEnable() { base.enabled &= Util.Verify(base.GetComponent() != null, "No renderer attached to this GameObject! LOS Culler component must be added to a GameObject containing a MeshRenderer or Skinned Mesh Renderer!"); } // Token: 0x060015EA RID: 5610 RVA: 0x0019C573 File Offset: 0x0019A773 private void Update() { this.m_IsVisible = LOSCuller.CustomCull(base.gameObject.GetComponent().bounds, this.m_RaycastLayerMask.value); } // Token: 0x060015EB RID: 5611 RVA: 0x0019C59C File Offset: 0x0019A79C private static bool CustomCull(Bounds meshBounds, int layerMask) { List lossources = LOSManager.Instance.LOSSources; for (int i = 0; i < lossources.Count; i++) { if (LOSHelper.CheckBoundsVisibility(lossources[i], meshBounds, layerMask)) { return true; } } return false; } // Token: 0x04002615 RID: 9749 [Tooltip("Selects which layers block raycasts used for visibility calculations")] [SerializeField] private LayerMask m_RaycastLayerMask = -1; // Token: 0x04002616 RID: 9750 private bool m_IsVisible = true; } }