/// <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); }
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); }