/// <summary> /// Place a gameobject on the road at marker 0 looking at marker 1 /// </summary> private void AutoPlaceGameObject() { if (!editor.extension.roadSettings.autoPlaceGameObject) { return; } if (editor.extension.roadSettings.placementGameObject == null) { Debug.LogError("No GameObject specified"); return; } ERRoadNetwork erRoadNetwork = new ERRoadNetwork(); ERRoad erRoad = erRoadNetwork.GetRoadByGameObject(editor.extension.roadSettings.road); if (erRoad == null) { Debug.LogError("No road gameobject specified"); return; } if (erRoad.GetMarkerCount() < 2) { Debug.LogError("At least 2 markers required"); return; } GameObject gameObject = editor.extension.roadSettings.placementGameObject; // get marker with index 0 and 1 Vector3 positionA = erRoad.GetMarkerPosition(0); Vector3 positionB = erRoad.GetMarkerPosition(1); Bounds prefabBounds = BoundsUtils.GetPrefabBounds(gameObject); // position at marker position gameObject.transform.position = positionA; // look at 2nd marker gameObject.transform.LookAt(positionB); }
/// <summary> /// Methode zum Platzieren des Autos am Anfang. /// </summary> private void PlaceCameraCar() { // Das Auto auf die rechte erste Spur platzieren ERRoad firstRoad = network.GetRoads().First(); Vector3 firstSplineRightSide = firstRoad.GetSplinePointsRightSide()[0]; Vector3 firstMarker = firstRoad.GetMarkerPosition(0); Vector3 rightMiddleLane = Vector3.zero; // Das Position je nach Anzahl der Spuren interpolieren switch (this.numberOfTracks) { case 8: rightMiddleLane = Vector3.Slerp(firstMarker, firstSplineRightSide, 0.85f); break; case 6: rightMiddleLane = Vector3.Slerp(firstMarker, firstSplineRightSide, 0.825f); break; case 4: rightMiddleLane = Vector3.Slerp(firstMarker, firstSplineRightSide, 0.75f); break; case 2: default: rightMiddleLane = Vector3.Slerp(firstMarker, firstSplineRightSide, 0.5f); break; } // Das Auto an die richtige Positions etzen cameraCar.gameObject.transform.position = rightMiddleLane; cameraCar.gameObject.transform.rotation = Quaternion.identity; // Ist platziert setzen isPlaced = true; }