Search Issue Tracker
Fixed in 5.3.6
Some shader combinations don't reload texture assets when reference is being used
NOTE: Behaviour is by design and bug was with the documentation. In this case, "fix" means that documentation was updated.
Steps to reproduce:
1. Open attached project "Reload.zip"
2. Open scene "test"
3. In Project tab, observe "mat" and "mat2" materials. Notice that "mat" uses Standard (Specular setup) shader and "mat2" uses Standard shader
4. Run scene
5. Press L to load (Resources.Load()) texture and assign it to plane
6. Press U to unload (Resources.UnloadAsset()) it and notice that it is no longer visible, like its expected
7. Press J to assign texture reference to the cube
8. Actual result - Notice that cube has its Texture changed, but plane doesn't.
Expected result - Plane also has its texture reloaded. This expectation comes from "If there are any references from game objects in the scene to the asset and it is being used then Unity will reload the asset from disk as soon as it is accessed." found in http://docs.unity3d.com/ScriptReference/Resources.UnloadAsset.html
9. Stop the scene
10. Change "mat" shader to "Particles/Additive"
11. Do steps 4-7
12. Notice that along with cube having its texture changed, plane has its texture Reloaded. This is Expected result for all shader combinations.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- When "draw instanced" is changed for entire terrain group and then undone, it is only undone for the terrain that was selected
- Custom Inspectors OnDisable still called after Asset has been deleted
- [Build Pipeline, Meshes] Mesh Optimization is not using enabled Material Keywords
- [UWP][MR] Development console is in incorrect position in Window Mixed Reality app
- Native Plugin regression from 2018.x results in "DllNotFoundException" error