加载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>());
}
}