How to make a 'level builder' using prefab objects as road pieces

I have currently created a simulation which mimics traffic rules with cars, pedestrians, crossings and lights and such. The next step I wanted to take with this is to let users build their own road lay outs using my pre-fab’d pieces of roads and I’m not really sure where to start. Ideally, I’d like it to have a window in which all road pieces are and they can simply ‘paint’ the roads down on to a terrain(floor), similar to how rollercoaster tycoons builder works. Included are screenshots of the kind of builder I want.

Any thoughts on where I can start for this or any tutorials as I’m kinda lost. I should add I am doing this in 3D. Thanks

I would start by putting mouse following scripts on prefabs using Input.mousePositionand making a Canvas with user interface buttons and other Input controls to make the prefabs.

You can load prefabs with Resources.Load<T>(string path). They need to be in a folder named “Resources”.

ex: prefab named “road” in “Assets>Resources>Roads” would be Instantiate(Resources.Load<GameObject>("Roads/road"));

You can save built things by making something to convert them to strings and storing their essential data like position. You can store these between sessions with PlayerPrefs (That’s the best way I know of).