Please make a separate setting for recompiling shaders in play mode

Pre-2019, when editing a shader in play-mode, it would immediately hot-reload on save, which was great for quick iteration.

As soon as the option became available, I changed my editor pref to Recompile scripts after exiting playmode, as it is extremely rare that any large project can actually continue working after an assembly reload. Before 2019, this had no effect on shaders.

In Unity 2019, it seems that shaders are now considered scripts, and respect that setting, which I think is really annoying.

Now I can’t have both things that I want. I never want an assembly reload in play mode, but I do sometimes want to edit and save scripts while in playmode so that I can make bug fixes on the fly (without a recompile, just making the changes while I’m playing). I always want shaders to immediately recompile on save since it can never break the game as they don’t contain state.

Could we either revert this change or make a separate setting for the recompile behavior of shaders? I know I can still manually reimport the shader but it is very cumbersome to track it down in the assets window and requires pausing the game / leaving the game window.

10 Likes

Agreed. I noticed this recently and its a real pain when you are used to tweaking shader in real-time.

I 100% agree. Recompiling shaders on the fly in play mode is my default method of shader iteration and I use it pretty much daily. This is a huge inconvenience for me!

Agreed!

Yes, please.

Bumping again for more attention from Unity.

& Bumping again :frowning:
You can manually reimport the shader asset and it’ll recompile the shader during play mode (atleast in 2019.4.34f1) but having the shader auto-recompile regardless of play mode settings would be ideal.

Bump again, this is very annoying to deal with.

1 Like