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);
    }
}

loadObjectListシーン ベース バンドルの場合、配列の要素は常に 0 でした。

関数を呼び出すとbundle.GetAllScenePaths()シーン パスを取得できますが、SceneManager.LoadScene()関数を使用してそれらのシーンをロードしようとすると、次のエラー メッセージが表示されます。

" (-1) ビルド設定に追加されていないか、AssetBundle が読み込まれていないため、シーンを読み込むことができませんでした".

AssetBundle からシーンをロードする方法を誰かが知っていましたか、それとも Unity の制限ですか?

4

1 に答える 1

2

最後に、これを行う方法をLoadScene()見つけました。機能するパスとファイル拡張子を指定すると、失敗する可能性があります。

例えば:

SceneManager.LoadScene("Assets/demosc1.unity");上記のエラーが発生し、動作していません。これは次のように変更する必要がありますSceneManager.LoadScene("demosc1");

于 2016-01-14T07:32:40.523 に答える