How to reproduce:
1. Open the attached “IN-84251“ project
2. Open the “SampleScene“
3. Enter Play Mode
4. Observe the console window
Expect: "Content: True" is logged twice
Actual: An error, “A scripted object (script unknown or not yet loaded) has a different serialization layout when loading,” is shown, and the second log displays “Content: False”
Reproducible with: 2021.3.44f1, 2022.3.48f1, 6000.0.21f1
Reproduced on: Windows 11
Not reproduced on: No other environment tested
Notes:
The conditions required for this bug to occur are:
Step 1: Load the AssetBundle, load its dependencies, instantiate the prefab, and destroy it
Step 2: Call Resources.UnloadUnusedAssets() twice
Step 3: Unload one of the dependencies by calling AssetBundle.Unload(false) for ScriptableObjectA
Step 4: Call Resources.UnloadUnusedAssets() again.
Step 5: Reload the previously unloaded AssetBundle, instantiate the prefab from Step 1 again
The dependency structure that must be followed is:
Prefab -> ScriptableObjectA -> ScriptableObjectB -> Any Asset (which will be lost).