Yes, exactly, vsync caps framerate to display rate, and for simpler Unity games that have no internal cap it can be necessary, because the uncapped framerate can be very high. Simpler games can use so little CPU resources (more complex games are also CPU limited at some point and can’t process, say 400 fps) that the internal FPS can shoot up and overheat your computer. The engine does render more frames that can be displayed if allowed to…
However the Steam counter will show only actually displayed frames. So you can be shown, say 60fps, but the engine can be running at 400.
It is counterintuitive, but this behavior can come from poor optimization as said, but also from pretty good optimization, that generates too high internal frame rates and taxing every component (while if you have a bottleneck you can have an overloaded GPU or CPU but not both).
Not saying this is your issue (it could be many other things), but it’s definitely the most common cause for this behavior. It’s most easily seen in games that when under “full load” (playing) do not overheat the computer but do when showing very simple menus (internal FPS can go over 1k).