示例#1
0
            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;
                }
            }
示例#2
0
            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);
                }
            }
示例#3
0
 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);
         }
     }
 }