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.
- [Vulkan] Wrong aspect ratio in fullscreen of Standalone build when selected screen resolution is not native
- 'A tree couldn't be loaded because the prefab is missing' error is thrown when importing package with Terrain Asset with Trees
- [Mac] Crash on ioAccelResourceListAddNewGroupAndResource when importing a large COLLADA model
- Prefab referenced Game Object is not removed from the Scene files when the reference field gets deleted
- Unity crashes on GC_grow_table when trying to deserialize an XML file