void GoToCover() { if (inCover == true) { return; } Transform cover = null; if (enem_target != null) { cover = AIHelpers.ReturnValidCover(combat.coverTags, enem_target.transform, senses.eyes, senses.visualRange, debugSettings.showCoverDetectors); } if (cover != null) { inCover = (Vector3.Distance(transform.position, cover.position) <= agent.stoppingDistance) ? true : false; if (inCover == false) { AIHelpers.MoveToTarget(cover.position, transform); } if (debugSettings.showSelectedCover == true) { debugSettings.coverPosition = cover.position; } currentCover = cover; } }
void GoToTarget() { float distance = (combat.type == CombatType.Shooter) ? combat.shotDistance : combat.meleeDistance; if (Vector3.Distance(transform.position, lastSeenLocation) > distance) { Vector3 target_point = lastSeenLocation; AIHelpers.MoveToTarget(target_point, this.transform); } }
void Patrol() { if (enem_target == null && waypoint_target != null) { AIHelpers.lookAtTarget(waypoint_target.transform.position, this.transform, movement.walkTurningSpeed); ChangeLookTarget(waypoint_target.transform); } if (agent.pathStatus == NavMeshPathStatus.PathComplete && agent.remainingDistance == 0) { waypoint_target = FindNextWaypoint(); if (waypoint_target != null) { AIHelpers.MoveToTarget(waypoint_target.transform.position, this.transform); } } }