unity AssetBundle打包及加载
unity版本2017.3.0
1.以下几个api已经弃用
打包只能用:
2.加载大部分用WWW加载
例子:
打包代码:
#if UNITY_EDITOR using UnityEditor; using UnityEngine; public class AssetBundleData: MonoBehaviour { [MenuItem("Assets/buildPrefab")] //在Assets下面显示一个buildPrefab按钮用来打包
static void AssetBundleGameObject() { string path = Application.dataPath + "/AssetBundle"; BuildPipeline.BuildAssetBundles(path,BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64); AssetDatabase.Refresh(); //刷新unity中的资源 } } #endif
加载:
using System.Collections; using UnityEngine; public class GameManager : MonoBehaviour { IEnumerator InstanceGameObj() //加载游戏物体 { string path =Application.dataPath+ "/AssetBundle/cube.prefab"; WWW wWW = new WWW(path); yield return wWW; if(string.IsNullOrEmpty(wWW.error)) { AssetBundle assetBuild =wWW.assetBundle; GameObject[] obj = assetBuild.LoadAllAssets<GameObject>(); Instantiate(obj[0]); foreach (GameObject item in obj) { Debug.Log(item.name); // Instantiate(item); } } else { Debug.Log(wWW.error); } yield return null; } IEnumerator InstanceScene()//加载游戏场景 { string path = Application.dataPath + "/AssetBundle/loadscene.scene"; WWW wWW = new WWW(path); yield return wWW; if(string.IsNullOrEmpty(wWW.error)) { AssetBundle ab = wWW.assetBundle; //将场景存入缓存区 UnityEngine.SceneManagement.SceneManager.LoadScene("Load"); //加载场景 } yield return null; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!