Skip to content

v0.14.3 — shader fallback no longer picks a destroyed shader

Choose a tag to compare

@lucas-martinic lucas-martinic released this 15 Aug 10:25
· 8 commits to main since this release

Shader.Find(a) ?? Shader.Find(b) is the Unity fake-null trap: Unity overloads == so a destroyed object reports as null, but ?? doesn't use that overload. A destroyed-but-not-null result won the chain and gave a material whose shader has no ShadowCaster pass — an object that renders and casts nothing.

Each candidate is now tested with ==, and falling back off the package's own vertex-colour shader logs a warning, since it costs the colours and the shadow together.