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

猜你喜欢

转载自blog.csdn.net/haneya/article/details/106751641