1.Open My project with unity5.3.5p3, load Scenes/Main.unity.
2.Run game in editor.
3.‘Canvas’ has a component ‘TestPanel’ will load three UI Prefab by three ways.
4.Load UI prefab from assetbundle with a custom font ‘greennum’ as the dependency.When instantiate the prefab, the font material is missing.
5.Load UI prefab from AssetDataBase, the ‘greennum’ 's material is perfect.
6.Load UI prefab from assetbundle, and then manually load ‘greennum’ asset, then set the Text.font to the manual font asset, the font’s material is perfect too.
I found another issue may be connected to this.When I load some sprites packed into one atlas from assetbundle as automatic dependencies, the atlas’s texture may be lost sometime.
In the new assetbundle system of Unity 5, prefabs in a bundle do not load depended assets from other bundles when the prefabs are loaded from the bundles. The depended assets are not actually loaded until the prefabs are instantiated.
This fact leads to some situations which are quite hard to deal with. Users can not unload assetbundles themselves right after the prefabs are loaded. To make them work correctly, all these bundles must be unloaded after the prefabs are all instantiated.