当前位置:网站首页>关于Hololens2上AssetBundle资源管理、热更新问题(个人Hololens2进阶开发小总结三)
关于Hololens2上AssetBundle资源管理、热更新问题(个人Hololens2进阶开发小总结三)
2022-07-21 05:16:00 【rikeilong】
AssetBundle资源管理、热更新问题
AssetBundle资源管理
关于Hololens2的文件路径问题一开始已经讲过了,下面为链接:
Unity中提供的AssetBundle资源管理实在很方便。然后在Unity编辑下打包好后的AB包部署在HoloLens2上却无法使用,这到底是个怎么回事?
一、AssetBundle是什么?
AssetBundle我们简称其为AB包,它是一个用于特定平台的资产压缩包,有点类似于压缩文件。这里的资产包括:模型,贴图,预制体,材质球等。因此AB包的作用实际上和Resources文件夹的作用是很像的。但两者之间有很大的不同。Resources文件夹在打包的时候其中的内容就定死了,只读没有办法修改,而AB包却可以自定义存储位置,自定义压缩方式,以及最重要的它可以有后续的更新。
二、Hololens2上的AssetBundle包导出
众所周知,Hololens2属于UWP平台,那么PC端的Unity编辑器下打包出来的AB包可不可以用呢?答案是不可以。
在网上关于资源导出AB包的方式有很多,文章就不再过多阐述,普遍的导出方式都为BuildTarget.StandaloneWindows
这种方式其实是只针对Windows上的X64、X86应用的,但Hololens2上的应用属于Windows Store Apps的,上诉打包出来的资源部署在Hololens2上是毫无作用可言。下图为官方API:
因此,我们在导出的时候只需要修改导出目标就行了
public class ExportAB
{
[MenuItem("AB包/导出")]
public static void Export()
{
//AB包导出路径
string path = Application.dataPath;
path = path.Substring(0, path.Length - 6) + "ab";//-6是指向Asset目录
Debug.Log(path);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
BuildPipeline.BuildAssetBundles(
path,
BuildAssetBundleOptions.None,//导出选项
BuildTarget.WSAPlayer);//WSA
}
}
注意,在这里导出的AB包是在PC端上的,要实现热更新就必须把这个AB包放在服务器进行访问下载,或者通过Hololens2后台导进Hololens2
三、Hololens2上读取AssetBundle包
读取的操作其实就跟在Unity编辑器下的操作一样,但是要注意导出的AB包存放路径问题,具体查看上上一期内容
1.定义和指定路径
private AssetBundleCreateRequest zhidong;
savepath = Application.persistentDataPath + "/ab";
2.读入数据
IEnumerator LoadAB(string assetName)
{
zhidong = AssetBundle.LoadFromFileAsync(savepath + "/wsazhidong");//wsazhidong是你资源名
yield return zhidong;
GameObject chilun = (GameObject)Instantiate(zhidong.assetBundle.LoadAsset(assetName));
chilun.transform.position = go.transform.position;
}
热更新
热更新其实简单来讲就是服务端更新数据,客户端进行更新展示。
总结
在HoLolens2上进行热更新其实原理一样,HoLolens2充当客户端的角色,通过某事件向服务器发送更新请求,服务器在AB包中进行修改、增添或删除,Hololens2更新后即可查看。
关于这方面的资料会在下一期整理并展示在项目中的热更新将如何使用。
边栏推荐
- Comprehensive: realtek/ Ruiyu wireless product map and market composition
- XML explanation
- 438. 找到字符串中所有字母异位词
- P/np/np complete /np hard
- Probability theory - law of large numbers and central limit theorem
- 寒假学习总结
- Programmation créative / groupe primaire (4e - 6e année) - graphisme créatif
- 【oops-framework】资源管理
- Redis哨兵机制及配置过程
- ACM training problem solution set record
猜你喜欢
438. 找到字符串中所有字母异位词
Principles and advantages of wireless charging module development
International Bluetooth giant Nordic enters the WiFi field
Merge sort
438. Find all letter ectopic words in the string
Probability theory hypothesis test
230. 二叉搜索树中第K小的元素
108. Convert an ordered array into a binary search tree
Watermelon book chapter 2 Notes - Performance Measurement
844. Compare strings with backspace
随机推荐
力扣记录:动态规划5子序列问题(2)编辑距离——392 判断子序列,115 不同的子序列,583 两个字符串的删除操作,72 编辑距离
029: Tao Tao picks apples
Probability theory - maximum likelihood estimation
MySQL安装
1046. 最后一块石头的重量
Property analysis of matter protocol (II) multiple fabric and permission control
验证哥德巴赫猜想
205. Isomorphic string
完成mysql数据库主从复制集群的搭建教程
Merge sort
Leetcode hash
2022ACM夏季集训周报(三)
P1111 highway repair (and collection)
AtCoder Beginner Contest 218 题解
006:浮点型数据类型存储空间大小
Why is Le Xin in a hurry to release esp32-c3 when there are few words
Cocos Creator 3.2 中实现2D地图3D人物45度角RPG游戏效果笔记(摄像机设置方案)
62. 不同路径
Programmation créative / groupe primaire (4e - 6e année) - graphisme créatif
299. 猜数字游戏