Including Shaders in Asset bundles results in missing graphics
I have several Spine animations included in asset bundles, along with them I include their materials, textures and various Atlas files. The actual Shader is the Spine/Skeleton shader and kept separately in the main project. For whatever reason the shader invariably comes back as Missing when the assets are loaded in-game. Re-assigning it once loaded works fine, but it's not really a long-term solution.
I've been reading similar-ish reports of this problem for the past few hours, most of them are years old and none of them seem to have firm solutions. either hacky workarounds (like attaching a script to the prefabs to rebind the shader on the fly) or including the shader in its own asset bundle.
Is there a way this is meant to be done?
Answer by YinXiaozhou · Sep 26, 2016 at 09:19 AM
You should store them in Always-included Shaders
It is important to add shaders used by streamed AssetBundles to this list to ensure they can be accessed.
I tried this, it didn't change anything.
The problem appears only in the editor, on devices and webGL it works without issue.