您的位置:首页 > 其它

加载AssetBundle

2014-09-11 17:51 127 查看
加载AssetBundle,使用www类加载

详细代码如下:
using UnityEngine;
using System;
using System.Collections;
using System.IO;
/// <summary>
/// 动态加载模型的脚本
/// </summary>
public class LoadModels : MonoBehaviour {

/******************全部加载******************
private string BundleURL;

private string[] _modelName;

void Start()
{
_modelName = SingleXmlRead.GetInstance()._ModelName;

BundleURL = "file://" + Application.streamingAssetsPath + "/models/modelsBundles.unity3d";
StartCoroutine(DownloadAssetAndScene());
}

IEnumerator DownloadAssetAndScene()
{
//下载assetbundle,
using (WWW asset = new WWW(BundleURL))
{
yield return asset;
AssetBundle bundle = asset.assetBundle;

foreach(string _name in _modelName)
{

GameObject _myTransform  ;
_myTransform = Instantiate(bundle.Load(_name))as GameObject;
_myTransform.transform.parent = transform;

_myTransform.SetActive(false);

}

SingleFindObj.GetInstance()._modelsSelfRotation.enabled = true;

bundle.Unload(false);
yield return new WaitForSeconds(5);
}
}
*/

/******************单个加载******************/
public AnimationClip _down1,_down2,_up1,_up2;

private string[] _bundleURL;
void Start()
{

_bundleURL= SingleXmlRead.GetInstance()._ModelName;

StartCoroutine(DownloadAssetAndScene());
}
IEnumerator DownloadAssetAndScene()
{
//下载assetbundle,
foreach( string _str in _bundleURL)
{
string _path = Application.streamingAssetsPath + "/models/"+ _str + ".unity3d";
if( !File.Exists(_path))
{
continue;
}

using (WWW asset = new WWW("file://" + _path))
{

yield return asset;
AssetBundle bundle = asset.assetBundle;

if(bundle.Contains(_str))
{
GameObject _myTransform  ;
_myTransform = Instantiate(bundle.Load(_str))as GameObject;

}

bundle.Unload(false);

}

}
SingleFindObj.GetInstance()._autoCtrl.enabled = true;

Destroy(GetComponent<LoadModels>());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: