/// <summary>
    /// Sets the path for the car gameobject and places it in the world
    /// </summary>
    /// <param name="CarObject">GameObject representing the AI car</param>
    /// <param name="path">List of nodes for the car to travel to which form a path</param>
    /// <param name="dumbCarID">Integer identifying the car</param>
    /// <param name="smart">Boolean indicating whether the car is smart or not</param>
    private void setAICarParams(GameObject CarObject, List <string> path, int dumbCarID, bool smart)
    {
        // Make path from start to end
        GameObject PathGameObject = CarObject.transform.Find("Path").gameObject;

        if (!useCachedPath)
        {
            //Path thisPath = new Path() { nodeIDs = path };
            DumbCar thisCar = new DumbCar();
            thisCar.id = dumbCarID;
            //thisCar.path = path.ToArray();
            dumbCars.Add(thisCar); // NOTE: seems to add all cars whether they are dumb or not
            //paths.Add(thisPath);
        }

        makePath(PathGameObject, g, path);

        AVController av     = CarObject.GetComponentInChildren <AVController>();
        Vector3      offset = av.setOneWayRoads(path);

        av.setPath(path);
        av.isSmart = smart;

        // Set spawn
        GameObject SpawnObject      = CarObject.transform.Find("Spawn").gameObject;
        GameObject SpawnPointObject = SpawnObject.transform.Find("SpawnPoint").gameObject;

        Graph.Node startingNode = g.nodeIdNodeDict[path[0]];
        Vector2d   xy           = world.toXY(startingNode.lat, startingNode.lon);

        if (smart)
        {
            av.roundOver = false;
            av.TP2Start();
        }
        //SpawnPointObject.transform.position = new Vector3((float)xy[0], 0.71f, (float)xy[1]) + transform.InverseTransformPoint(offset);
    }
Exemplo n.º 2
0
    private void setAICarParams(GameObject CarObject, List <string> path, int dumbCarID)
    {
        // Make path from start to end
        GameObject PathGameObject = CarObject.transform.Find("Path").gameObject;

        if (!useCachedPath)
        {
            //Path thisPath = new Path() { nodeIDs = path };
            DumbCar thisCar = new DumbCar();
            thisCar.id   = dumbCarID;
            thisCar.path = path.ToArray();
            dumbCars.Add(thisCar);
            //paths.Add(thisPath);
        }

        makePath(PathGameObject, g, path);

        AVController av     = CarObject.GetComponentInChildren <AVController>();
        Vector3      offset = av.setOneWayRoads(path);

        av.setPath(path);

        // Set spawn
        GameObject SpawnObject      = CarObject.transform.Find("Spawn").gameObject;
        GameObject SpawnPointObject = SpawnObject.transform.Find("SpawnPoint").gameObject;

        Graph.Node startingNode = g.nodeIdNodeDict[path[0]];
        UnityEngine.Debug.Log("StartingNode nodeId: " + startingNode.nodeId);
        UnityEngine.Debug.Log("StartingNode Lat: " + startingNode.lat);
        UnityEngine.Debug.Log("StartingNode Lon: " + startingNode.lon);
        Vector2d xy = world.toXY(startingNode.lat, startingNode.lon);

        UnityEngine.Debug.Log("X: " + xy[0]);
        UnityEngine.Debug.Log("Y: " + xy[1]);
        //SpawnPointObject.transform.position = new Vector3((float)xy[0], 0.71f, (float)xy[1]) + transform.InverseTransformPoint(offset);
    }