void CarryOutDetection() { if (Time.time > nextCheck) { nextCheck = Time.time + checkRate; Collider[] colliders = Physics.OverlapSphere(myTransform.position, detectRadius, playerLayer); if (colliders.Length > 0) { foreach (Collider potentialTargetCollider in colliders) { if (potentialTargetCollider.tag == "Player") { if (CanPotentialTargetBeSeen(potentialTargetCollider.transform)) { break; } } } } else { myEnemyMaster.CallEventEnemyLostTarget(); } } }
bool CanPotentialTargetBeSeen(Transform potentialTarget) { if (Physics.Linecast(head.position, potentialTarget.position, out hit, sightLayer)) { if (hit.transform == potentialTarget) { myEnemyMaster.CallEventEnemySetNavTarget(potentialTarget); return(true); } else { myEnemyMaster.CallEventEnemyLostTarget(); return(false); } } else { myEnemyMaster.CallEventEnemyLostTarget(); return(false); } }