private void Update() { if (observerCount > 0) { remainingSecondsTillCheck -= Time.deltaTime; if (remainingSecondsTillCheck <= 0f) { remainingSecondsTillCheck += visibilityCheckPeriodSeconds; bool isVisibleNow = VM20.Instance.IsVisible(CachedTransform.position); if (isVisibleNow != isVisible) { isVisible = isVisibleNow; OnVisibilityStateChanged?.Invoke(isVisible); } } } }
private void OnTriggerExit(Collider other) { if (other.CompareTag(TAG_PLAYER)) { observerCount--; Debug.Assert(observerCount >= 0, "EnemyUnitController: Negative observer count reached."); if (observerCount == 0) { if (isVisible) { isVisible = false; OnVisibilityStateChanged?.Invoke(isVisible); } } } }