private void OnTriggerExit2D(Collider2D other) { if (other.gameObject.CompareTag("Player")) { Collider2D[] colliders = new Collider2D[10]; other.OverlapCollider(filter, colliders); if (state == DetectedState.almost && Array.Find(colliders, trigger => trigger == almostDetectedTrigger) == null) { indicator.color = neutralColor; state = DetectedState.neutral; } } }
private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.CompareTag("Player")) { Collider2D[] colliders = new Collider2D[20]; other.OverlapCollider(filter, colliders); if (state == DetectedState.neutral && Array.Find(colliders, trigger => trigger == almostDetectedTrigger) != null) { indicator.color = almostDetectedColor; state = DetectedState.almost; } else if (state != DetectedState.detected && Array.Find(colliders, trigger => trigger == detectedTrigger) != null) { playerSightedHandler(other.gameObject); indicator.color = detectedColor; state = DetectedState.detected; } } }