Ejemplo n.º 1
0
 private void Move()
 {
     if (nextPoint != null)
     {
         Vector2 nextPosition2D = new Vector2(nextPoint.Position.x, nextPoint.Position.z);
         Vector2 dir            = nextPosition2D - new Vector2(transform.position.x, transform.position.z);
         if (dir.magnitude <= 0.5f)
         {
             if (nextPoint.isStart == true && previousPoint != null)
             {
                 Destroy(gameObject);
             }
             else
             {
                 if (nextPoint.Continue == true)
                 {
                     nextPoint.ResetButton();//Moet weg bij verbetering PedestrianWaypoint.
                     AgentWaypoint wp = nextPoint.GetNextWaypoint(previousPoint);
                     previousPoint = nextPoint;
                     nextPoint     = wp;
                     Vector3 wpPos = nextPoint.Position;
                     navAgent.SetDestination(new Vector3(wpPos.x, transform.position.y, wpPos.z));
                 }
                 else
                 {
                     nextPoint.PushButton();
                 }
             }
         }
     }
     else
     {
         Destroy(gameObject);
     }
 }
Ejemplo n.º 2
0
 public void SetData(AgentWaypoint start, Agent agent)
 {
     nextPoint = start;
     transform.LookAt(new Vector3(nextPoint.Position.x, transform.position.y, nextPoint.Position.z));
     this.agent            = agent;
     navAgent.acceleration = agent.acceleration;
     navAgent.speed        = agent.maxSpeed;
 }
Ejemplo n.º 3
0
    public void SpawnPedestrian(AgentWaypoint start)
    {
        Agent   agent = pedestrians[Random.Range(0, pedestrians.Length)];
        Vector3 pos   = start.Position;

        pos.y += 2;
        GameObject go = Instantiate(agent.prefab, pos, agent.prefab.transform.rotation);

        go.GetComponent <AgentController>().SetData(start, agent);
    }
Ejemplo n.º 4
0
    void Awake()
    {
        Position       = transform.position;
        agentWaypoints = new List <AgentWaypoint>();
        Continue       = true;
        if (waypoints == null)
        {
            waypoints = new List <Transform>();
        }
        else
        {
            foreach (Transform t in waypoints)
            {
                agentWaypoints.Add(t.GetComponent <AgentWaypoint>());
            }
        }

        if (halfpoint != null)
        {
            halfwaypoint = halfpoint.GetComponent <AgentWaypoint>();
        }
    }
Ejemplo n.º 5
0
 public AgentWaypoint GetNextWaypoint(AgentWaypoint previous)
 {
     if (previous == null)
     {
         return(agentWaypoints[Random.Range(0, agentWaypoints.Count)]);
     }
     else if (halfpoint != null && previous != halfwaypoint)
     {
         return(halfwaypoint);
     }
     else
     {
         List <AgentWaypoint> points = new List <AgentWaypoint>();
         foreach (AgentWaypoint wp in agentWaypoints)
         {
             if (wp != previous)
             {
                 points.Add(wp);
             }
         }
         return(points[Random.Range(0, points.Count)]);
     }
 }
 // Start is called before the first frame update
 protected override void Init()
 {
     waypoint  = GetComponent <AgentWaypoint>();
     spawnTime = Random.Range(minSpawnTime, maxSpawnTime);
 }