从Asset Bundle加载对象

时间:2014-04-03 07:51:17

标签: unity3d

我有下载和主要的cs文件。第一个包含方法LoadAsset

public IEnumerator  LoadAsset(string link, string loadObject)
{
WWW download;
string ErrorMsg=" ";
download = new WWW(link);
yield return download;

if (download.error != null)
{
   ErrorMsg=download.error;
}
else
{
   ErrorMsg="Downloading ....";
   AssetBundle asset = download.assetBundle;
       GameObject loadedObject;
loadedObject = Instantiate(asset.Load(loadObject,typeof(GameObject))) as GameObject;

   asset.Unload(false);
   ErrorMsg="Done";
}   
   Debug.Log(ErrorMsg);
}

我想从Main.cs文件中调用此方法并在其中返回loadedObject。试图使用StartCoroutine

Download download; 
download=new Download(); 
StartCoroutine("download.LoadAsset()");

但没有成功。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试不带引号

StartCoroutine( download.LoadAsset() )

如果要取消引号,可以添加引号,但它不适用于您班级以外的方法。

最好在Main.cs中添加一个为你启动协程的方法,比如这样

public void StartLoadAssetCo()
{
  StartCoroutine(LoadAsset());
}

然后从课堂外调用 StartLoadAssetCo

download.StartLoadAssetCo();