I recently experienced an issue where I noticed that many of my UI elements would be shaking (unstable position) while the camera is in motion.
The setup I had was that described by Unity at one of their Unite conferences for performance (ie. logically nesting canvases under one canvas as much as possible). The canvas had pixel perfect turned off explicitly and the plane distance was 1, which was lower than the default 100 when you add the canvas using the create menu. The root canvas was set to a render mode of “Screen Space – Camera”.
After a few methods of troubleshooting I finally realized that this was caused by the plane distance being set to a low value while using a render mode of “Screen Space – Camera”; if I returned the plane distance value back to the default 100 there is no problem! Ensure that this is the option that suites your needs the best as “Screen Space – Overlay” might be a better choice in many cases. If you do need to use “Screen Space – Camera” in your situation then you would want to try out some values on different screen resolutions and platforms to ascertain that your users will not experience this behavior.
There is an “Screen Space – Overlay” option for root canvases which would be a better option in most scenarios. It does have some impact on FPS but it eliminate this “shaking” UI problem as well as any potential issue related to the UI not being visible due to obstruction by a closer mesh.