상속: MonoBehaviour
예제 #1
0
    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();
    }
예제 #3
0
    private void PerformPatrol(FollowAgent agent)
    {
        NavMeshAgent navMeshAgent = agent.GetNavMeshAgent();

        if (navMeshAgent.remainingDistance <= navMeshAgent.stoppingDistance)
        {
            SetNextCheckpoint(agent);
        }
    }
예제 #4
0
 public void OnEnterState(FollowAgent agent)
 {
     if (agent.LastPatrolCheckpointIndex > 0)
     {
         currentPatrolCheckpointIndex = agent.LastPatrolCheckpointIndex;
     }
     else
     {
         currentPatrolCheckpointIndex = 0;
     }
     agent.GetNavMeshAgent().destination = agent.GetPatrolCheckpoints()[currentPatrolCheckpointIndex];
 }
예제 #5
0
    public void Update(FollowAgent agent)
    {
        bool shouldFollowTarget = agent.ReachedTargetFollowingThreshold();

        if (shouldFollowTarget)
        {
            agent.GetNavMeshAgent().destination = agent.GetFollowTarget().transform.position;
        }
        else
        {
            SwitchToPatrolState(agent);
        }
    }
예제 #6
0
    public void Update(FollowAgent agent)
    {
        bool shouldFollowTarget = agent.ReachedTargetFollowingThreshold();

        if (shouldFollowTarget)
        {
            SwitchToFollowTargetState(agent);
        }
        else
        {
            if (agent.GetPatrolCheckpoints().Length != 0)
            {
                PerformPatrol(agent);
            }
        }
    }
예제 #7
0
 private void SwitchToFollowTargetState(FollowAgent agent)
 {
     agent.SetState(new FollowState());
 }
예제 #8
0
 public void OnExitState(FollowAgent agent)
 {
     agent.LastPatrolCheckpointIndex = this.currentPatrolCheckpointIndex;
 }
예제 #9
0
 public void OnEnterState(FollowAgent agent)
 {
 }
예제 #10
0
 private void SwitchToPatrolState(FollowAgent agent)
 {
     agent.SetState(new PatrolState());
 }
예제 #11
0
 public void OnExitState(FollowAgent agent)
 {
 }