Search Issue Tracker
Fixed in 5.3.7
Votes
0
Found in
5.3.6p2
Issue ID
822393
Regression
No
Sometimes errors when LoadAssetAsync and UnloadUnusedAsset is called before GameObject asset is instantiated
When calling UnloadUnusedAssets in a script where a LoadAssetAsync has occured but asset not yet used, AssetBundleRequest.asset will sometimes instantiate with error:
The referenced script on this Behaviour is missing!
The referenced script on this Behaviour (Game Object 'TestPrefab') is missing!
GameObject (named 'TestPrefab') references runtime script in scene file. Fixing!
while( true )
{
AssetBundleRequest request = m_assetBundle.LoadAssetAsync("TestPrefab", typeof(GameObject));
yield return request;
yield return Resources.UnloadUnusedAssets();
GameObject g = Instantiate<GameObject>(request.asset as GameObject);
}
Expected result:
The loading process should not fail and error messages should not appear.
Notes:
Appears to happen less on OSX and IOS
Comments (3)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- "Playmode tint" is applied to Color and Gradient fields when in Play mode
- [HDRP] Scene corrupts when baking Reflection Probe with custom TextureImporter preset added to Texture Importer default
- HDRP Wizard window UI components overlap when HDRP Wizard window is docked and resized horizontally
- VideoPlayer component fails to play MP4 files located under the StreamingAssets folder
- Terrain Tools icons are low quality
g_Laser
Sep 08, 2018 19:30
I believe that's by design- request is a local variable, and UnloadUnusedAssets (according to doc) doesn't preserve assets referenced only by local variable on the stack. If you want it to be preserved, make sure to stick it in a member variable of an object.
tomerpeledNG
May 15, 2018 19:01
I also encountering this with Unit 2017.4.1f1 any workaround?
WinddyHe
Dec 04, 2017 13:11
This bug also appears in the version 5.4.5p5