Exemple #1
0
    public void Init()
    {
        initialised_ = true;
        targets_     = new Queue <Vector3>();
        //find all the available roads
        GameObject[] roads       = GameObject.FindGameObjectsWithTag("Road");
        GameObject   closestRoad = roads[0];

        //find the closest road
        for (int i = 0; i < roads.GetLength(0); i++)
        {
            //GameObject road = roads[i];
            float dist = Vector3.Distance(roads[i].transform.position, transform.position);
            if (dist < Vector3.Distance(closestRoad.transform.position, transform.position))
            {
                closestRoad = roads[i];
            }
        }
        //chose a target road from them
        target_  = closestRoad.transform.position;
        curRoad_ = closestRoad.transform.gameObject;
        if (curRoad_)
        {
            targets_.Enqueue(curRoad_.GetComponent <Road>().GetEnd().transform.position);
            transform.LookAt(target_);
        }


        Personality personality = GetComponent <Personality>();

        if (personality)
        {
            personality.Init();
        }
    }
Exemple #2
0
    void Stage4()
    {
        Stage1();
        //check if stage1 has complete
        if (stage_ == 2)
        {
            Camera.main.GetComponent <CameraController>().ToggleCompass(false);

            stage_ = 5;
            checkpoints_.StartTimer(60.0f);
            if (phase2Stage_ == 0)
            {
                //set up totally defensive cars
                foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car"))
                {
                    Personality personality = car.GetComponent <Personality>();
                    if (personality)
                    {
                        personality.Init(true, 0.0f, 1.0f, 0.0f);
                    }
                }
            }
            else if (phase2Stage_ == 1)
            {
                //set up totally aggressive cars
                foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car"))
                {
                    Personality personality = car.GetComponent <Personality>();
                    if (personality)
                    {
                        personality.Init(true, 1.0f, 0.0f, 0.0f);
                    }
                }
            }
            else if (phase2Stage_ == 2)
            {
                //set up totally inattentive cars
                foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car"))
                {
                    Personality personality = car.GetComponent <Personality>();
                    if (personality)
                    {
                        personality.Init(true, 0.0f, 0.0f, 1.0f);
                    }
                }
            }
        }
    }
Exemple #3
0
    public void InitParked(Road road)
    {
        Start();

        initialised_ = true;
        targets_     = new Queue <Vector3>();

        curRoad_ = road.gameObject;
        GameObject parking = road.GetParkingSpace();

        if (parking)
        {
            transform.position = parking.transform.position + Vector3.up;
            transform.LookAt(transform.position + parking.transform.forward, Vector3.up);
            parking.GetComponent <ParkingSpace>().SetAvailable(false);
            state_ = CarState.CS_DEPARKING;

            foreach (Vector3 target in parking.GetComponent <ParkingSpace>().GetExitTargets())
            {
                targets_.Enqueue(target);
            }

            target_ = targets_.Dequeue();

            Personality personality = GetComponent <Personality>();
            if (personality)
            {
                personality.Init();
            }
            if (purpose_)
            {
                purpose_.SetParkingSpace(parking.GetComponent <ParkingSpace>());
            }
        }
        else
        {
            targets_.Enqueue(road.GetComponent <Road>().GetEnd().position);
            state_             = CarState.CS_MOVING;
            transform.position = road.GetPointOnRoad(transform.position);
            transform.LookAt(targets_.Peek());
        }
    }