一、准备场景和预设和AB包资源
①新建一个Cube然后创建一个材质球,然后将其做成预设,如下所示:
②编写打包预设为AB包的脚本(注意:该脚本需要放置在Editor这个特定的目录文件夹下)
/*** *Title:"三维可视化" 项目 *主题:打AB包 *Description: *功能:XXX *Date:2019 *Version:0.1版本 *Author:Coffee *Modify Recoder: */ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace SimpleUIFrame { public class BuildAssetBundle { [MenuItem("Tools/打AB包")] public static void BuildAB() { BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, BuildAssetBundleOptions.ChunkBasedCompression,BuildTarget.StandaloneWindows64); AssetDatabase.Refresh(); Debug.Log("打包完成"); } } }
③打AB包,首先创建一个“StreamingAssets”文件夹,然后选择给需要打包的物体添加AssetBundle标签,最后点击顶部的Tools-->打AB包稍等一下即可打出AB包,如下所示:
二、开始编写四种加载资源的脚本
/*** *Title:"三维可视化" 项目 *主题:资源加载的四种方法 *Description: *功能:XXX *Date:2019 *Version:0.1版本 *Author:Coffee *Modify Recoder: */ using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TestFunction { public class AssetLoadMethods : MonoBehaviour { //加载的预设物体 public GameObject _LoadObj_Pre; void Start() { //1、资源加载的第一种方式,直接在面板拖拽,通常不使用 if (_LoadObj_Pre!=null) { //实例化预设物体 GameObject obj = Instantiate(_LoadObj_Pre); //修改加载物体的名称 obj.name = "第一种拖拽资源加载方式"; } //2、资源加载的第二种方式,使用Resources.Load加载资源 //(注意预设需要放置在Resources目录下面,这个目录有限制, //最大只能加载2G的资源内容,一般不建议使用) GameObject loadObj = Instantiate(Resources.Load("Prefabs/cube"))as GameObject; loadObj.name= "第二种Resources资源加载方式"; //3、资源加载的第三种方式,使用AssetBundle加载的方式加载(常用方式) AssetBundle assetBundleObj = AssetBundle.LoadFromFile(Application.streamingAssetsPath+"/cube"); GameObject abObj =Instantiate(assetBundleObj.LoadAsset<GameObject>("cube")); abObj.name = "第三种AB资源加载方式"; //4、资源加载的第四种方式,使用AssetDatabase.LoadAssetAtPath加载资源(编辑器框架开发使用) GameObject DBobj =Instantiate(UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>("Assets/GameData/Prefabs/cube.prefab")); DBobj.name = "第四种DB资源加载方式"; } } //Class_end }
三、将该脚本添加到物体上,然后指定对应的预设,运行即可
发表评论 取消回复