When you change the source of a shader during Play mode, Unity recompiles and hot swaps the shader. Unfortunately, it looks like compute shader properties are not restored after the hot swap. The textures that I set on my compute shader become null after the reload. Is there a way to be notified or detect a shader hot swap, so that I can reassign the shader properties? It seems like this is different from a full C# assembly hot swap. If you only change the shader code, the C# scripts are not reloaded and therefore, the usual solutions don't seem to work. Here's what I've tried so far: DidReloadScripts annotation AssemblyReloadEvents.afterAssemblyReload event Use computeShader.GetInstanceID() and see if it changes after a hotswap (it doesn't).