Shapes triggers dirtying of Prefabs project-wide due to updating Bounds in OnValidate
We've found that the UpdateBounds function that is called within ApplyProperties causes all Prefabs in a project that contain a ShapesRenderer to be dirtied.
The problem we have is that when using Shapes with version control, this causes regular checking out of all Prefabs within a project that contain any ShapesRenderer, since OnValidate is called on domain reload for MonoBehaviours with [ExecuteAlways], meaning all of these Prefabs are dirtied, and checked out, with every domain reload.
Since I don't think updating bounds needs to happen at edit time, we have fixed this internally by simply changing the ApplyProperties function to the below:
private protected void ApplyProperties(bool updateBounds = true) { VerifyComponents(); // make sure components exists. rnd can be uninitialized if you modify an object that has never had awake called rnd.SetPropertyBlock(Mpb); if (updateBounds) UpdateBounds(); }
and then updating the ApplyProperties call within OnValidate to pass false for updateBounds.
Reporting a bug? please specify Unity version:
6000.0.43f1
Reporting a bug? please specify Shapes version:
4.5.0
Reporting a bug? please specify Render Pipeline:
URP