private void CarryOutDetection() { if (Time.time > nextRate) { nextRate = Time.time + checkRate; Collider[] colliders = Physics.OverlapSphere(myTransform.position, detectedRaduis, playerLayer); if (colliders.Length > 0) { foreach (Collider potentialTargetCollider in colliders) { if (potentialTargetCollider.CompareTag("Player")) { if (CanPotentialTargetBeSeen(potentialTargetCollider.transform)) { print("Player insight"); break; } } } } else { enemyMaster.CallEventEnemyLostTarget(); } } }
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.CompareTag(GameManager_Reference._playerTag)) { if (CanPotentialTargetBeSeen(potentialTargetCollider.transform)) { break; } } } } else { enemyMaster.CallEventEnemyLostTarget(); } } }
bool CanPotentialTargetBeSeen(Transform potentialTarget) { if (Physics.Linecast(head.position, potentialTarget.position, out hit, sightLayer)) { if (hit.transform == potentialTarget) { enemyMaster.CallEventEnemySetNavTarget(potentialTarget); return(true); } else { enemyMaster.CallEventEnemyLostTarget(); return(false); } } else { enemyMaster.CallEventEnemyLostTarget(); return(false); } }
void CarryOutDetection() { Collider[] colliders = Physics.OverlapSphere(myTransform.position, detectRadius, playerLayer); if (colliders.Length > 0) { foreach (Collider potentialTarget in colliders) { if (potentialTarget.CompareTag("Player")) { if (CanPotentialTargetBeSeen(potentialTarget.transform)) { break; } } } } else { enemyMaster.CallEventEnemyLostTarget(); } }