New:
Unity 6 support, including URP 17 & HDRP 17 support
Improved:
Side Objects: Bridge pillars will no longer be spawned on bridge sections where another road object is below the bridge
Add Shape to Terrain Splatmap: improved smoothness levels when road object specific splatmaps overlap (for example near intersections)
Fixed:
Possible issues with the HDRP 14 shaders when the Surface Type is set to Opaque
Miscellaneous small bugs
Improved:
URP: the Forward+ Rendering Path is now also supported for URP 14, /EasyRoads3D/SRP Support packages/URP_14_0_10 or DEMO_URP_14_0_10 when the free Demo package is imported
URP / HDRP workflow including control over detecting URP / HDRP version changes in General Settings > Project Settings
Side Objects: new "Default" alignment option for Dual Sided side objects. Instead of mirroring or rotating instances 180 degrees on opposite road sides, the objectswill align according the road direction based on the default prefab alignment settings
Ease In / Ease Out sliders to control the vertical road shape transition near intersections
Fixed:
Mesh Type of side objects: Optional Start and End Connection objects disappearing
Mesh Type of side objects: End Connection objects missing when "Average by Road Length" is not active
Possible errors when exporting road types or side objects to a Unity package and importing them into another project that uses a different version of EasyRoads3D
Custom Connection Editor: The currently assigned road type not being displayed after connection selection changes when only 1 road type exists and when the id for that road type is 0
Procedural and Shape type of side objects and optional Box Colliders. Box colliders do now follow random X Positions
Miscellaneous small bugs
New:
Procedural Side Objects: Segment Offset option to force gaps between segments or to force overlap between segments. This way for example fence elements that are inside the full bounds of the mesh will connect well
Improved:
Box Collider support for Dual Sided side objects
API: ERRoad class: public Vector3[] GetSideObjectInstancePoints(SideObject so); get the spline points of an instance of a Procedural or Shape type of side object
API: ERRoad class: public GameObject[] GetSideObjectInstances(SideObject so); get the spawned instances of a Mesh type of side object
Runtime scene examples, create intersections using the scripting API
Fixed:
I Connector Blend textures "Build" material option not populating all material properties
Road markers not snapping to the terrain for already existing instances of a road type after activating "Follow Terrain Contours" for a road type
Miscellaneous small bugs
New:
URP 16.0.5 support
Improved:
LOD Levels: the default MeshCollider is now active for all LOD Levels
Fixed:
Miscellaneous small bugs
Improved:
URP 15 support
Fixed:
Issues in newer Unity versions when opening custom and dynamic prefabs in the project folder
Side Object placement issues with custom X position values when the default X position value is 0
Miscellaneous small bugs
New:
Unity 2023 URP and HDRP 15 is now supported
Improved:
Start and End object can now also be set for Mesh type of side objects
Fixed:
Miscellaneous small bugs
New:
OSM road data import through the scripting API
Improved:
Start and end positioning of auto generated barriers on Circular sections
Fixed:
Duplicated side objects after "Refresh Road Network" for road network objects that are marked as a side object and for which no actual road mesh is created
Inaccurate Offset values for additional side objects relative to auto generated retaining walls
Miscellaneous small bugs
New:
Support for Unity 2022.2
Improved:
"Duplicate Object" will now duplicate all selected objects when multiple objects are selected
The W key can now also be used to set global orientation for the road marker position handle
Fixed:
Side Objects not linking to the prefab in the project folder after changes for a specific road object or after updating scene instances of a specific side object
Miscellaneous small bugs
New:
Side Objects on Connection objects, including Custom Connections. For Custom Connection prefabs the curves for side objects on the edges can be customized if necessary in the Unity prefab editor after opening the prefab from the project folder in the Inspector window
New material & shader package for the latest URP versions
Improved:
Mesh extraction optimizations for Custom Connection models
Instantiated objects from prefabs in the project folder will inherit the static state of this prefab
Fixed:
UV coordinate issues with non square textures in the Shape type of side object editor window
v3.2.1f4 issue when pulling out road objects from a connection and instantly snap this new road object to another connection
Miscellaneous small bugs
Improved:
New Side Object related API options, get the Side Object active state, get the active state for individual markers and on which side of the road the side object is active
Vegetation Studio support for API call CenterPivotPoints(). The Vegetation Studio components attached to the road object will be updated accordingly.
Fixed:
Road width inaccuracies on more extreme steep road angles
The road network still switching back to Edit Mode when selecting "No" in the Unity Dialog after one of the other EasyRoads3D toolbar tabs is pressed in Build Mode
Miscellaneous small bugs
New:
Support for Unity 2022
Improved:
Side Object type of scene objects with no road objects involved: Spline control points can now be further below the terrain objects Y position
Scripting API: Overloaded methods for side object operations with control over refreshing the actual side object. Multiple side object changes can be performed with only one final refresh.
Fixed:
Miscellaneous small bugs
New:
Support for HDRP 12.1.0 and newer
Improved:
Roundabouts, distribute connections evenly at equal distances / angles
Changed:
Space to toggle on and off the highlight surfaces has changed to Ctrl + Space to avoid intereference with new space bar options in Unity 2021.2
Fixed:
Side objects not aligning with adjusted road shapes at connections with X or Z axis rotations
Indent and Surrounding values not updating to the default road type values after changing the road type of a specific road object
Miscellaneous small bugs
New:
Support for Unity 2021.2
Scene View handles for customizing the Indent and Surrounding surfaces to adjust the terrain.
General Settings > Scene Settings > Terrain Cell Angle Threshold, this can be used to automatically adjust the surrounding value and control the steepness of the terrain when there are height differences between the road and the terrain.
Improved:
Auto generated Side Objects: new option "Strict Rules".The preset will only be selected when the terrain profile matches all set rules for this side object preset. This os useful for stepped walls to avoid them from being generated on road sections where this side object will not fit well.
Fixed:
Miscellaneous small bugs
Improved:
Additional I connector API options for blending roads
Additional Side Object API options
Scene View Offset handles for both road sides when "Dual Sided" is active
Offsets for auto generated side objects based on terrain height differences
Fixed:
Manually activated side objects starting and ending one spline point further then the actual road marker position
Miscellaneous small bugs
Improved:
Auto generated tunnels and terrain holes at the start and end of the tunnel
Auto generated bridge sections and updating terrain heights relative to the terrains heightmapscale regardless the road resolution
A Side Object Refresh button will be available in the right bottom of the Scene View window to quickly visualize the side object after changes in the Side Object Manager. This button will be active when a road is selected and when the selected side object in the Side Object Manager is active on this road. Ctrl + U will do the same.
Fixed:
Miscellaneous small bugs
New:
Improved:
Random road tilting / rotations are now ignored on auto generated bridge sections
Option to highlight the selected marker section
Fixed:
Latency when updating side object type of objects (no roads involved) that are marked as static
Inspector issues with reversed Min Max values for terrain offset slider controls in recent URP and HDRP versions
Side object type of object selection issue when selecting a marker on top of an actual road object
Miscellaneous small bugs
New:
URP and HDRP Support packages
Fixed:
Missing new Connection Prefabs in v3.2 demo project
Miscellaneous small bugs
New:
Auto generated side objects based on rules, the terrain shape and the road shape
Terrain hole support for tunnels, this is in preview status. The results depend on the terrain specifications. The provided tunnel examples are tested on terrains with the default settings, 500x500 and 1000x1000, heightmap resolution 512
Submesh support for procedural side objects
Direct scale option for Procedural and Shape Type of side objects in the General Settings
Automatic start, middle, end section extraction of source prefabs for procedural side objects by using a naming convention for each section in the model
Stepped side object support for Procedural side objects by including stepped sections in the source prefab. The new demo package includes an example
Improved:
Inside the Unity editor side objects are now spawned using the original prefab through PrefabUtility
Sideways X Position control for side objects per marker
Normals calculation for Propcedural side objects
Procedural and shape type of side object sections can now clamp between marker sections. This gives better control over the side object shape on straight sections and corners near markers.
Optional start and end caps support for shape type of side objects.
A single side object can be used for both the right and left side of the road
Fixed:
Miscellaneous small bugs
New:
Select a road in the hierachy, hit the F key, the Scene View cam will zoom to the road, and auto select the road in the road network
.
Fixed:
The terrain splatmap not being restored correctly through the API after swtiching back to Edit Mode when the road network object is created at runtime
Possible side object related errors when roads based on a road type are created through the scripting API
Road marker selection changes after clicking a gizmo with another marker behind it
Miscellaneous small bugs
Changed:
Previously road markers were selectable regardless the status of the Scene View toolbar. This could result in unexpected behaviour. Just like with ordinary game object selection it is now no longer possible to select markers with the Hand tool active (the Q key). To select the marker please make sure to have one of the transform tabs active, usually the Move Tool (W key)
Improved:
Mesh type of side objects, "Average by Road Length" just below "Distance between Objects". By default this is switched on. "Distance between Objects" will be recalculated so the last instance is positioned at the end of the track. When switching "Average by Road Length" off the real "Distance between Objects" value will be used.
Fixed:
Miscellaneous small bugs
New:
Marker Road shape control through the scripting API: ERRoad.GetRoadShapeNodes(int markerIndex), ERRoad.SetRoadShapeNodes(int markerIndex, Vector2[] nodes) , ERRoad.SetRoadShapeNodes(int[] markerIndexes, Vector2[] nodes)
Changed:
Scripting API: Obsolete ERRoadNetwork.GetSourceConnectionByName(string name). This is replaced by ERRoadNetwork.GetConnectionPrefabByName(string name)
Improved:
The marker alignment options when 2 markers are selected can now also be used for two road object sections connected with an I Connector
Unity 2019.3, Inspector foldouts can now also be opened by clicking on the arrow just like in previous Unity versions
Fixed:
Scripting API: ERRoad.SplitRoad(int markerIndex)
Missing Category selection option for side objects in the Side Object Manager
Miscellaneous small bugs
New:
General Settings > Scene Settings > Scene Objects Control. Here objects can be added that may interfere with road network click events resulting in that object being selected. This can happen for instance with water objects. Adding these objects here will prevent this from happening. Just like with terrain objects, double click will still select them
Changed:
"Back To Edit mode" is now locked in Play Mode as this process may freeze Unity
Shift + Click to instantiate newly created dynamic crossing prefabs in the scene for editing has been removed for Unity 2018.3+. Please use the Prefab Editor for this in Unity 2018.3+
Improved:
Physics material options for both roads and road types
Road objects can now be selected by clicking anywhere on the road mesh, the nearest marker will be selected
Fixed:
Side Objects not aligning correctly to custom road shapes like railroads when alignment is set to "Path Normal"
Miscellaneous small bugs
Changed:
v3.1.9.f1 included a temporary workaround for a Unity bug in Unity 2019.3.0f1 and older betas preventing Unity from crashing after saving database assets in OnDestroy(). This is fixed in Unity 2019.3.0f2+. If you are using v3.1.9f1 then it is recommended to upgrade to v3.1.9f2 which handles saving database assets in the previous more reliable way
Improved:
Importing road type and side object presets in a new project. After selecting the road network object in the scene, new road type and side object presets in the project folder will be detected and automatically start the import process
Fixed:
Errors after creating a new road network object in older projects upgraded to v3.1.9.f1
Miscellaneous small bugs
New:
CTRL + SHIFT + M: Snap all the road markers to the terrain height at the markers position
CTRL + M: Snap the selected road marker to the terrain height at that position
Scripting API: ERRoad.GetMarkerCount(), returns the total number of markers for a the road
Scripting API: ERRoad.GetDistance(int markerIndex), returns the distance of the section corresponding to the passed marker index
Improved:
"Ratio" control for Side Object Connection objects. This represents how often the connection object is instantiated. 1 is every section, 2 is every 2 section, and so on. This is for example useful for bridge pillars that should be instantiated less frequently then every repeated section.
Fixed:
Miscellaneous small bugs
Improved:
Crossing / connections instances in the scene can now be duplicated and reused. This includes customizable dynamic connection instances like X, T crossings and roundabouts
The option to exclude specific terrain objects on the ERTerrain component attached to terrain objects. That way low resolution terrains at a distance will not affect terrain deformation settings such as the minimum required Indent values.
Auto inserting intersections by snapping two roads when sidewalks are involved
Auto inserting intersections by snapping two roads in areas where the target road is below the terrain
Changed:
The Shift Key will move the marker relative to the direction the Scene View Camera is facing. Previously this was done by pressing the M key to trigger the free move handle
Shift + Drag marker (previously Ctrl + Drag) will snap the marker to the terrain
Fixed:
Inserting a new marker between the first and second marker not working well for closed tracks
Miscellaneous small bugs
New:
Connections tab in the Inspector: the option to mark and move most used prefabs to the top for quick selection. This can be useful when many connection prefabs are available like in the HD Roads package.
Scripting API
ERRoad.SplitRoad(int markerIndex)
Splits the road in two road objects and returns the newly created road object
ERRoad.InsertConnector(ERConnection connectionObject, int index, int connectionIndex1, int connectionIndex2, out ERRoad road)
Splits the road in two sections and inserts the source connectionObject at the passed marker index to connectionIndex1 and connects the second road section to connectionIndex2
ERRoad.SetSideObjectOffset(SideObject obj, int index, OffsetPosition position, float value)
This will start / end the side object at the passed marker index at the start (OffsetPosition.Start) or end (OffsetPosition.End) according the passed value
Improved:
"Combine Sections" for Procedural and Shape sideobject types. In previous versions a single mesh was generated regardless the number of sections defined by the marker active states. It is now possible to generate meshes per section
"Delete Object" will now delete all selected objects instead of only the last selected object when multiple objects are selected
Changed:
Fixed:
Grass detail objects still visible on roads just on the edge of terrain tiles
Miscellaneous small bugs
New:
Connections Tab: option to mark prefabs as Favourite. It will move the prefab up to the top for quick selection. This can be useful when many connection prefabs are present in the connection prefabs folder
Improved:
Fixed:
Issues with the new v3.1.8 road snapping feature when crossings are involved and road sections with only 2 markers
Possible issues in v3.1.8 with connections in the Custom Prefab system when shapes like sidewalks are involved.
New:
Snapping road markers to join two roads at the start and end is now supported. This works by moving the start or end marker over another start / end marker, the other marker will light up. The markers will connect after releasing the mouse button. The road will be closed if the involved markers are part of the same road. The two roads will be joined in one road when there is a match on the road type, otherwise the marker handle will appear in orange and the two roads will connect through an I Connector.
Scripting API support for activating side objects on roads
ERRoadNetwork.GetSideObjectByName(string name)
returns the object of type SideObject
ERRoad.SideObjectSetActive(SideObject obj, bool value)
activates / deactivates the side object for this road object
ERRoad.SideObjectMarkerSetActive(SideObject obj, int markerIndex, bool value)
activates / deactivates the side object for the passed marker index for this road object
ERRoad.SideObjectMarkerSetActive(SideObject obj, int[] markerIndexes, bool value)
activates / deactivates the side object for the passed array of marker indexes for this road object
Improved:
Circular road sections at the start and end of a road when crossings are attached
Road data import: improved accuracy of the imported osm / kml data and additional bounds stats
Customizable grid size in General Settings > Scene Settings > Grid Control
Option to switch of terrain deformation for built in crossings in the General Settings
Fixed:
Errors in v3.1.7 when creating roads through the scripting API
Inaccurate terrain deformation below I Connectors with a transition mesh
Improved:
Fixed:
Possible inaccuracies with side objects clamped to the road side when the road shape is raised higher above the terrain.
Inaccurate terrain deformation below I Connectors with a transition mesh
New:
Vegetation Studio Pro support for Biome Masks
Indent and Surrounding presets for road types
OSM road data: textfield for an additional custom osm road type input
Improved:
EasyRoads3D uses layer 31 for internal operations. This is now customizable in General Settings > Scene Settings > EasyRoads3D Layer
The full road network can now be moved or rotated by selecting both the "Connection Objects" and "Road Objects" in the hierarchy. After moving and / or rotating these two objects please press the "Apply Transform Changes" to make the changes permanent.
Side Objects: "Distance between objects", this is now also editable per road object.
Fixed:
Possible NullReferenceExceptions after attaching roads to a T crossings and moving over one of the roads afterwards
Side objects not clamping to road edges when the road shape itself is raised further above y = 0
Miscellaneous other small bugs and improvements
New:
OSM road data: textfield for an additional manual osm road type input
Fixed:
Unity reimporting assets when saving the scene (Unity 2018.3)
Side object active state changes for road types not updating already exisiting scene instances of that road type
Road shape baking in terrain splatmap issues near crossings at low terrain heights>
Miscellaneous other small bugs and improvements
New:
Scripting API:
ERConnection.SwapTurn() : bool
Swaps the turn between the left and right side of the main road, returns false if the operation could not be completed
ERConnection.RotateConnections() : bool
Rotates the crossing and reconnects the attached roads to the new connections. Returns false if the operation could not be completed
ERRoad.SetLeftIndent( float value, int index) : float
Sets the indent value on the left side of the road for the marker at index
ERRoad.SetLeftSurrounding( float value, int index) : float
Sets the surrounding value on the left side of the road for the marker at index
ERRoad.SetRightIndent( float value, int index) : float
This will set the indent value on the left side of the road for the marker at index
ERRoad.SetRightSurrounding( float value, int index) : float
This will set the surrounding value on the left side of the road for the marker at index
Improved:
Move quickly between markers using the Keypad Plus and Minus keys
Vegetation Studio perimeter options per road object
Display of connection prefab thumbnails in the Inspector
Fixed:
Side object setting changes for road types not updating for scene instances after pressing "Update Scene Instances"
Possible terrain deformation issues for roads with active sidewalks and manual or random roatations/tilting
NullReferenceExceptions in V3.1.4. after adding a new connection to a roundabout object
New:
Unity 2018.3: Dynamic Connection source prefabs can now be fully edited in the new Unity 2018.3 prefab system.
The Snap Connector. These are road type specific prefab connectors that can be added to other prefabs. Scene instances of this road type can be pulled out or snapped to these connectors. This can be used for roads attached to other prefabs like buildings or bridges but also for side objects for which a "road type" is created. For example a gate with walls or fences attached. Snap Connector prefabs can be generated in General Settings > Road Types > Create Snap Connector (button near the bottom in the Inspector).
New:
Option to duplicate a road type in General Settings > Road Types
Unity 2018.3: Connection prefabs will be edited in the new Unity 2018.3 prefab system. This is not fully functional yet, but this means that connection prefab instances can now also be dropped in the scene from the project folder. The road network will have to be selected afterwards, this will be further optimized. Connection prefabs can still be instantiated in the scene from the connections tab in the Inspector like before.
Improved:
Combined side objects inheriting the shadow mode of the source prefab
Fixed:
Possibly wrong tangents on the procedural side object type
Changed:
Improved:
Scene View clicks are now only intercepted on objects part of the road network in order to keep it selected. Since clicking the terrain is part of the workflow to deselect markers, double click will actually select the terrain.
Scene View position handle orientation road markers. Previously the position handle orientation was according the path forward. This can be set to horizontal now. Once the position handle is displayed, the W key will switch between path forward and horizontal orientation.
Road shape in terrain splatmap baking, improved smoothness algorythm
Customized road shapes for markers will be preserved when changing the main road width. You will be asked whether you want to ignore the road width change for these markers, reset the width to the new road width, or adapt the shape proportionally to the road width change.
Road type selection for KML data import
Fixed:
Side Object Start / End handles in Scene View initially being locked and unmovable for the default offset value 0
The Road Network becoming unresponsive when Grid Control is active while no local grids have been created yet
StackOverflowExceptions after "Create New connection Prefab" based on the selected road type in General Settings > Road Types
New:
Changed:
Improved:
Fixed:
New:
Scripting API:
public Vector3 GetLocalConnectionPosition(int connectionIndex)
Returns the local position of connectionIndex.
public Vector3[] GetLocalConnectionPositions()
Returns the local positions of all the connections of this connection prefab
Improved:
Fixed:
New:
Fixed: