When your project uses the standard render pipeline, then you can use a script on the minimap camera which sets a replacement shader. But you would still render the whole scene twice, which could in the worst-case scenario cost you half of your FPS.
A better solution would be to have two completely separate visual representations for each object which is supposed to show up on the minimap.
- Create a new layer called "MinimapObject"
- Configure the culling mask of your main camera to render everything except the "MinimapObject" layer
- Configure the culling mask of your minimap camera to render only the "MinimapObject" layer
- Attach a child-objectsobject to every game object which is supposed to show up on the minimap.
- Set the layer of those child-objects to "MinimapObject"
- Create the visual representation on the minimap in the "MinimapObject" child. In the case of level geometry, that would mean a lower detail version of the regular mesh with your stylized shader material. You could also represent points of interest (like quest objectives, for example) as sprites or add text labels to your minimap as world-space canvases.