コード例 #1
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());
        }
    }