Version 2 of PIDI 2D Reflections worked with a single code component that handled the reflection-generation as well as assigned it to the sprite component attached to the same Game Object. This setup required each reflective object to render its very own reflection, which quickly became expensive. Version 3 on the other hand handles separates the reflection rendering process from its assignation to a certain sprite, allowing you to easily re-utilize and share the generated reflections across multiple sprites with similar placement.
This means however that there is no easy way to update a scene from version 2 of PIDI 2D Reflections to version 3, as whether you require a Reflection Renderer component for each sprite or you can share them depends entirely on the layout of your scene. The ease of use of the new workflow should help you to upgrade your scenes in a short time.
Parallax reflections (real-time reflections for parallax camera setups) were not possible in Universal RP with version 2, but they are easy to achieve in version 3. Version 3 has also been designed and tested with the 2D Renderer (Experimental URP feature) in mind. While support for this feature is still in Beta, it is mostly ready to use.
Another feature that Version 2 had was the use of masked reflections, ensuring that reflections were displayed only over certain areas of a sprite. However, this feature has become irrelevant in version 3 due to the way reflections are rendered. Additional sprite masking can be done using Unity’s native sprite masking features.
Additionally, version 3 has a new “Character Reflection” component which is dozens of times more efficient than the old way to render local reflections for a single object in v 2.0. Its workflow is simpler (just add the given component) and it can work with dozens of characters and dynamic objects at once.