Unity AssetBundle加载 预制体
代码很简单没有难度,都有注解,随便 康一康 就会了。
上代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
/// <summary>
/// 预制体加载
/// </summary>
public class MyPanel_ZH : MonoBehaviour
{
//物体生成位置
private GameObject _MyText;
[SerializeField]
//输入要加载的 AB 预制体名字
private InputField _InputField;
[SerializeField]
//点击加载
private Button _ButtonAsste;
void Start()
{
_MyText = GameObject.Find("Panel");
}
public void OnClick()
{
StartCoroutine(LoadAction());
print(_InputField.text);
}
public IEnumerator LoadAction()
{
// AssetBundle 路径加载
string _Url = "file:///" + Application.streamingAssetsPath + "/AssetBundles/" + _InputField.text;//_InputField.text;//testassetbundle
//网络加载
using (UnityWebRequest _Uwr=UnityWebRequestAssetBundle.GetAssetBundle(_Url))
{
yield return _Uwr.SendWebRequest();
if (_Uwr.isNetworkError||_Uwr.isHttpError)
{
Debug.Log(_Uwr.error);
}
else
{
//返回下载的AssetBundle,或null。
AssetBundle _AssetBundle = DownloadHandlerAssetBundle.GetContent(_Uwr);
if (_AssetBundle)
{
var _Prefab = _AssetBundle.LoadAsset<GameObject>(_InputField.text);
if (_Prefab)
{
GameObject _MyTextPre = Instantiate(_Prefab, _MyText.transform.position, Quaternion.identity);
_MyTextPre.transform.SetParent(_MyText.transform);
}
}
}
}
}
private void Update()
{
//按键退出
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
}
}
}
菜单编辑 按钮点击
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
/// <summary>
/// 菜单编辑 按钮点击
/// </summary>
public class CreateAssetBundle_ZH : MonoBehaviour
{
//菜单栏 Button 创建
[MenuItem("Asset/Build AssetBundles")]
static void BuildAllAssetBundles()
{
string _AssetBundleDirectory = Application.streamingAssetsPath + "/AssetBundles";
if (!Directory.Exists(_AssetBundleDirectory))
{
Directory.CreateDirectory(_AssetBundleDirectory);
}
//构建编辑中指定的所有资产包 变量( 构建地址、 资产包构建选项、目标构建平台)
BuildPipeline.BuildAssetBundles(_AssetBundleDirectory, BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64);
}
}
暂时先这样吧,如果实在看不明白就留言,看到我会回复的。
路长远兮,哈哈哈,与君共勉。