从AssetBundle

时间:2016-01-14 06:42:46

标签: dynamic unity3d scene assetbundle

我尝试使用以下代码从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的限制?

1 个答案:

答案 0 :(得分:2)

最后,我弄清楚如何执行此操作:如果我将路径和文件扩展名指定为LoadScene()函数,则可能会失败。

例如:

SceneManager.LoadScene("Assets/demosc1.unity");无法正常工作并产生错误。这需要修改为SceneManager.LoadScene("demosc1");