Unity 之 AssetBundle打包和本地加载简例
【摘要】 打包 首先要对先要打包的资源起名字,如下图:第一个为打包后资源名称(加“/”可以添加子级目录),第二个可以理解为后缀(随意写),, 然后在Project面板下新建两个文件夹,“Editor”用来存放打包使用的脚本文件,,这个文件夹是不会跟随游戏发布出去的,,“AssetBuile”是自定义文件夹,用了存放打包好的资源文件,,,如下图: 然后编写如下脚本:
usin...
打包
首先要对先要打包的资源起名字,如下图:第一个为打包后资源名称(加“/”可以添加子级目录),第二个可以理解为后缀(随意写),,
然后在Project面板下新建两个文件夹,“Editor”用来存放打包使用的脚本文件,,这个文件夹是不会跟随游戏发布出去的,,“AssetBuile”是自定义文件夹,用了存放打包好的资源文件,,,如下图:
然后编写如下脚本:
using UnityEngine;
using UnityEditor;
public class Ceaterab { //拓展编辑菜单
[MenuItem("AssetsBundle/CreatAssetsBudles")]
static void CreateAsset(){ //存放打包好文件的路径 string dir = Application.dataPath + "/AssetBuild"; //将资源中命名的所有资源打包处理(参数:路径,有依附关系,安卓平台) BuildPipeline.BuildAssetBundles(dir,BuildAssetBundleOptions.None,BuildTarget.Android);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
点击AssetBundle下的子级按键即可完成打包文件,,在AssetBuile目录下即可查看,,
本地加载
编写一下脚本,挂载到游戏对象上,运行,,,即可加载出刚刚打包的包的内容,,,
using UnityEngine;
public class LoadAsset : MonoBehaviour {
// Use this for initialization
void Start () { AssetBundle ab = AssetBundle.LoadFromFile(Application.dataPath+"/AssetBuild/wall.unity3d"); GameObject abObj = ab.LoadAsset<GameObject>("Cube"); Instantiate(abObj);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
运行图:
- 读取的时候只需要写文件名称就可以了,可以理解为一个AB包就是一个文件夹,加载之后AB包之后,再加载具体的资源就不需要写路径。【这也是AB包中的资源不能重名的原因】
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/78144601
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)