我无法从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);
}
答案 0 :(得分:2)
AssetBundle.LoadAsset
返回null,因为您正在加载的AssetBundle中没有名为“tv”的Object。
1 。确保拼写正确或您将正确的对象传递给LoadAsset
函数。这是区分大小写的。
2 。在构建AssetBundle之前,您必须确保将对象“tv”添加到AssetBundle。
假设您的AssetBundle名称为"house"
,并且要添加到其中的对象为"tv"
,请选择"tv"
对象并将AssetBundle选项更改为{{1 }}。请参阅下图以供参考:
在您的情况下,问题是#1 。您的AssetBundle名称为"house"
,并且您要加载名为"tv"
的对象。将"1.obj"
传递给"1"
函数而不是LoadAsset
。