AssetBundle.LoadAsset始终返回NULL

时间:2018-05-18 10:21:26

标签: c# unity3d assetbundle

我无法从Assest包中加载资产作为Gameobject。它返回null

    yield return www;
    AssetBundle bundle = www.assetBundle;
    if (www.error == null)
    {
        GameObject tv = (GameObject)bundle.LoadAsset("tv");
        //yield return tv;
        //GameObject santaasset = Instantiate(bundle.LoadAsset("tv", typeof(GameObject)) as GameObject);
        Debug.Log(bundle); // returns tv           
        Debug.Log(tv);//return null
        Instantiate(tv); 
    }
    else
    {
        Debug.Log(www.error);
    }

enter image description here

更新: 之前 Before generating After Generating

1 个答案:

答案 0 :(得分:2)

AssetBundle.LoadAsset返回null,因为您正在加载的AssetBundle中没有名为“tv”的Object。

1 。确保拼写正确或您将正确的对象传递给LoadAsset函数。这是区分大小写的。

2 。在构建AssetBundle之前,您必须确保将对象“tv”添加到AssetBundle。

假设您的AssetBundle名称为"house",并且要添加到其中的对象为"tv",请选择"tv"对象并将AssetBundle选项更改为{{1 }}。请参阅下图以供参考:

enter image description here

在您的情况下,问题是#1 。您的AssetBundle名称为"house",并且您要加载名为"tv"的对象。将"1.obj"传递给"1"函数而不是LoadAsset