1

我尝试使用以下代码从 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);
    }
}

对于场景基础包,我总是得到 0 个loadObjectList数组元素。

如果我调用bundle.GetAllScenePaths()函数,我得到了场景路径,但是如果我尝试使用SceneManager.LoadScene()函数加载这些场景,我会收到以下错误消息:

(-1) Scene 无法加载,因为它尚未添加到构建设置或 AssetBundle 尚未加载”。

有人知道如何从 AssetBundle 加载场景还是这是 Unity 的限制?

4

1 回答 1

2

最后我想出了如何做到这一点:如果我指定路径和文件扩展名来LoadScene()运行它可能会失败。

例如:

SceneManager.LoadScene("Assets/demosc1.unity");不工作并产生上述错误。这需要修改为SceneManager.LoadScene("demosc1");.

于 2016-01-14T07:32:40.523 回答