【问题标题】:Load Unity game scene from AssetBundle从 AssetBundle 加载 Unity 游戏场景
【发布时间】:2016-01-14 15:32:40
【问题描述】:

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

【问题讨论】:

    标签: dynamic unity3d scene assetbundle


    【解决方案1】:

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

    例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多