我尝试使用以下代码从AssetBundle加载Unity场景:
using (WWW www = WWW.LoadFromCacheOrDownload("http://127.0.0.1:8080/unity/test-scene", 1))
{
yield return www;
if (www.error != null)
{
Debug.Log("Load Error " + www.error);
}
AssetBundle bundle = www.assetBundle;
Object[] loadObjectList = bundle.LoadAllAssets();
foreach(Object tempObj in loadObjectList)
{
Debug.Log("Object = " + tempObj);
}
}
对于场景基础包我总是得到loadObjectList
数组的0个元素。
如果我调用bundle.GetAllScenePaths()
函数我得到了场景路径,但是如果我尝试使用SceneManager.LoadScene()
函数加载这些场景,我收到以下错误消息:
" ( - 1)无法加载场景,因为尚未将其添加到构建设置或尚未加载AssetBundle "。
有人知道如何从AssetBundle加载场景,还是这是Unity的限制?
答案 0 :(得分:2)
最后,我弄清楚如何执行此操作:如果我将路径和文件扩展名指定为LoadScene()
函数,则可能会失败。
例如:
SceneManager.LoadScene("Assets/demosc1.unity");
无法正常工作并产生错误。这需要修改为SceneManager.LoadScene("demosc1");
。