private void SetNextCheckpoint(FollowAgent agent) { int patrolCheckpointsLength = agent.GetPatrolCheckpoints().Length; currentPatrolCheckpointIndex = (currentPatrolCheckpointIndex + 1) % patrolCheckpointsLength; agent.GetNavMeshAgent().destination = agent.GetPatrolCheckpoints()[currentPatrolCheckpointIndex]; }
//private FollowAgent enemyAgent; public void Start() { agent = GetComponent <FollowAgent>(); enemyAgent = agent.enemyAgent.GetComponent <FinalAgentBigMap>(); //enemyAgent = agent.enemyAgent.GetComponent<FollowAgent>(); OnEnable(); }
private void PerformPatrol(FollowAgent agent) { NavMeshAgent navMeshAgent = agent.GetNavMeshAgent(); if (navMeshAgent.remainingDistance <= navMeshAgent.stoppingDistance) { SetNextCheckpoint(agent); } }
public void OnEnterState(FollowAgent agent) { if (agent.LastPatrolCheckpointIndex > 0) { currentPatrolCheckpointIndex = agent.LastPatrolCheckpointIndex; } else { currentPatrolCheckpointIndex = 0; } agent.GetNavMeshAgent().destination = agent.GetPatrolCheckpoints()[currentPatrolCheckpointIndex]; }
public void Update(FollowAgent agent) { bool shouldFollowTarget = agent.ReachedTargetFollowingThreshold(); if (shouldFollowTarget) { agent.GetNavMeshAgent().destination = agent.GetFollowTarget().transform.position; } else { SwitchToPatrolState(agent); } }
public void Update(FollowAgent agent) { bool shouldFollowTarget = agent.ReachedTargetFollowingThreshold(); if (shouldFollowTarget) { SwitchToFollowTargetState(agent); } else { if (agent.GetPatrolCheckpoints().Length != 0) { PerformPatrol(agent); } } }
private void SwitchToFollowTargetState(FollowAgent agent) { agent.SetState(new FollowState()); }
public void OnExitState(FollowAgent agent) { agent.LastPatrolCheckpointIndex = this.currentPatrolCheckpointIndex; }
public void OnEnterState(FollowAgent agent) { }
private void SwitchToPatrolState(FollowAgent agent) { agent.SetState(new PatrolState()); }
public void OnExitState(FollowAgent agent) { }