在处理预制体ab包卸载的时候,调用assetBundle.Unload(true),引发报错:
Assertion failed on expression: 'm_PreventLoadingFromFile != nameSpaceID'
UnityEngine.StackTraceUtility:ExtractStackTrace ()
在官网搜索unloadAssetBundle failed,会有解释:
UnloadAssetBundle failed - Questions & Answers - Unity Discussions
问题就出现在摄像机身上,这个预制体的ab包中,摄像机预设了输出的RenderTexture,再卸载ab包时调用assetBundle.Unload(true),就会出现这个报错。
那么解决方案就只需将摄像机输出的预设置为none,然后在代码中为摄像机添加输出的texture。
public Camera modelCam;
public RenderTexture modelTexture;
override protected void Awake()
{
base.Awake();
modelCam.targetTexture = modelTexture;
}