赞
踩
一:打包资源。
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
-
- public class AssetsBundle : MonoBehaviour {
-
- [MenuItem("Assets/Buid AssetBundle")]
- static void BuildAllAssetsBundles()
- {
- BuildPipeline.BuildAssetBundles("AssetBundle", BuildAssetBundleOptions.None,
- BuildTarget.StandaloneWindows);
- //用这句代码来打包这个文件
- //AssetBundle 代表文件名.也就是要提前在这个工程目录下创建一个AssetBundle的文件.
- //第二个参数(BuildAssetBundleOptions.None)表示 AssetBundle Build Option
- //第三个参数是平台
- }
- }
MenuItem就是在Assets下多了个按钮,这个和编辑插件一样, 之后的语法buildPipeline这个似乎有些api弃用,必须把参数填全。
之后打包出来的东西就是资源文件下prefab 的inspector面板中 右下角位置。 注意这里的输出资源是同assets同级目录下。
打包完成后会多一个了:AssetBundle文件 以及.manifest文件。 无后缀的文件表示了当前打包的所有资源, .mainfest文件则表示了我们打包的prefab的所有依赖的scripts等文件。
二:读取资源
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class LoadAssetsBundle : MonoBehaviour {
-
- public string url;
- public string assetsName;
- IEnumerator Start() {
- WWW www = new WWW(url);
- yield return www;//等待www加载完成
- if (www.error!=null)
- {
- Debug.Log("net error");
- }
- else
- {
- AssetBundle bundle= www.assetBundle;
- Object obj= bundle.LoadAsset(assetsName);
- var t=Instantiate(obj);
- bundle.Unload(false);//true 全部卸载 false释放用过的 这里如果写true会发现纹理贴图不见了,是紫色的
- }
- www.Dispose();//释放资源
- }
- }
file://D:/Battle/AssetBundle/player1.assetbundle
assetsName则是我们刚刚生成的 ,我这里是player1
尝试着在自己的ftp上读取 url:
ftp://10.192.69.9/player1.assetbundle
这个就不用file:了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。