UNITY2019.3之如何生成和加载ASSETBUNDLE包

https://www.freesion.com/article/638669176/

生成ASSETBUNDLE

新建一个Cube和Capsule,命名如图

 

然后生成预制体,新建AssetBundle

 

新建一个Editor文件夹(这个是必须的),然后在目录下创建C#脚本:

 
  1. using UnityEditor;

  2. using System.IO;

  3.  
  4. public class CreateAssetbundles:Editor

  5. {

  6.  
  7. [MenuItem("AssetsBundle/Build AssetBundles")]

  8. static void BuildAllAssetBundles()//进行打包

  9. {

  10. string dir = "AssetBundles";

  11. //判断该目录是否存在

  12. if (Directory.Exists(dir) == false)

  13. {

  14. Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录

  15. }

  16. //参数一为打包到哪个路径,参数二压缩选项 参数三 平台的目标

  17. BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);

  18. }

  19. }

保存之后编辑器菜单栏就回出现对应按钮如下图:

 

点击之后就在工程目录对应文件下生成AssetBundle文件:

 

加载ASSETBUNDLE

在Hierarchy面板新建一个空物体,创建一个加载AssetBundle的脚本,脚本内容如下:

 
  1. using UnityEngine;

  2.  
  3. public class LoadFromFileExample : MonoBehaviour

  4. {

  5.  
  6. private void Start()

  7. {

  8. //通过文件路径加载对应的包

  9. AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/scene/wall.unity3d");

  10. GameObject wallPrefab = ab.LoadAsset<GameObject>("CubeWall");

  11. //实例化预制体

  12. Instantiate(wallPrefab);

  13. //加载所有包,然后遍历实例出来

  14. //Object[] objs = ab.LoadAllAssets();

  15. //foreach (var item in objs)

  16. //{

  17. // Instantiate(item);

  18. //}

  19. }

  20. }

 

版权声明:本文为a1191835397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/a1191835397/article/details/96989037

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值