Unity 加载资源
直接把资源放在unity的目录里是不行的 打包的时候 不会打进去
要想打包到apk里 只有两种选择
1 放到 StreamingAssets 里 – Application.streamingAssetsPath
2 场景里有引用 他会自动打包进apk里
资源放到预制体里 并且预制体没在场景里 也不打包
先安装
https://github.com/Unity-Technologies/AssetBundles-Browser.git
使用文档
https://docs.unity.cn/Packages/com.unity.assetbundlebrowser@1.7/manual/index.html
创建两个ab包
1包是建模
2包是预制体 里面1包里的模型
也就是说 包2 是依赖 包1 的
如果只加载包2 unity是不会自动加载包1的
所以需要自己加载依赖关系
就是这样的
手机里没找到相对应的位置
apk安装包解压缩后 可以看到 ab包 在assets里
好 现在需要知道 ab包之间的依赖 咋办
string urlmf = Path.Combine(Application.streamingAssetsPath, "Android");
AssetBundle ab3 = AssetBundle.LoadFromFile(urlmf);
AssetBundleManifest abManifest = ab3.LoadAsset<AssetBundleManifest>("assetbundlemanifest");
string[] str1 = abManifest.GetAllDependencies("ab1");
注意
这个 urlmf 是整个所有ab包的 也就是那个整个文件夹的
不是单独某个ab包的 (单独的加载不到)
举个例子 你生成的是安卓的ab包
那么 你会发现
在生成的ab包里 有一个 Android.manifest 文件
打开后 里面其实是 ab包之间的依赖关系
那如果现在想发包
哪写内容放到StreamingAssets 呢?
StreamingAssets 的特性是只读的
如果你把StreamingAssets 里的内容热更新到 persistent 那就会存在两份数据
去YooAsset群里问了下
群主的意思是
有一个原则,你可以参考。:首包保证玩家可以进入游戏体验15分钟即可。
其余内容,可以后续更新。
后续更新有2种方式,1:边玩边下,2:解锁新地图或新副本下载。
如果ab包在服务器怎么办
加载就行啦~
StartCoroutine(this.loadAB());
IEnumerator loadAB()
{UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(@"http://10.0.16.118:5000/ab2");yield return request.SendWebRequest();GameObject go1 = DownloadHandlerAssetBundle.GetContent(request).LoadAsset<GameObject>("PrefabA");GameObject.Instantiate(go1);
}
现在
如果你需要把下载到的ab包 存到 persistentDataPath 里 咋办?
如果用普通下载到的 request.downloadHandler.data 直接 FileStream 写入是不行的
会报 NotSupportedException: Raw data access is not supported for asset bundles
需要这么写
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(@"http://10.0.16.118:5000/ab2");
FileInfo fileInfo = new FileInfo(Path.Combine(Application.persistentDataPath, "ab2"));
var handler = new DownloadHandlerFile(fileInfo.FullName);
request.downloadHandler = handler;
request.disposeDownloadHandlerOnDispose = true;
重点是 DownloadHandlerFile
可以查看文件
Unity 加载资源相关推荐
- Unity加载资源时的常用路径或文件夹
加载资源或者下载资源时的常用路径,我们平常开发下用的是编辑器下的路径. 编辑器下使用的资源路径和Windows端打包后并没有什么区别.你在编辑器下写的资源路径代码,大概率是可以在Windows下无缝运 ...
- 关于unity 中使用AssetBundle加载资源,shader偶尔会丢失的问题解决办法
问题描述: 因为项目中要进行热更新设计,所以用unity官方推荐的打包方式assetbundle进行打包,打包好了以后再电脑上运行正常,但是当发布到android上后发现偶尔场景背景会出现空白,多方查 ...
- Unity—AssetBundle的打包及四种加载资源方式
AssetBundle打包:脚本放在Editor文件夹内 具体代码如下: using UnityEditor; using System.IO;public class CreateAssetBund ...
- Unity打开VS,一直显示hold on,一直在加载资源的解决办法
关于Unity打开VS,一直显示hold on,一直在加载资源的问题,只要项目路径不含中文,就不会出现这种情况了.再不然只能从hub里面去下载VS,或者用19版本的应该也不会出现这种情况. 关于uni ...
- AssetBundle——外部加载资源Asset
几篇很不错的文章 AssetBundle创建到使用入门 全面理解Unity加载和内存管理 实用的创建AssetBundle的脚本 相关资源 相关的共享资源下载 本共享包括创建assetbundle的 ...
- Addressable系统的加载资源API总结
你好,我是跟着大智学Unity的萌新,我叫小新,这是我本周的学习总结报告哦. 大智:"小新,这周学习有没有遇到什么问题呢?" 小新:"确实遇到了,那个Addressabl ...
- Unity加载模块深度解析(纹理篇)
资源加载 资源加载是加载模块中最为耗时的部分,其CPU开销在Unity引擎中主要体现在Loading.UpdatePreloading和Loading.ReadObject两项中,相信经常查看Prof ...
- Unity加载进度条
转载自:http://www.58player.com/blog-2537-89690.html 背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题 ...
- Unity加载优化-将基于LZMA的ab压缩方案修改为LZ4压缩的过程
# 观前提示 本文适合需要了解LZMA以及LZ4进行ab打包方案同学,以及会将一些资源管理的方案.如果恰好你也用xlua-framework,那就更适合你了. # 优化起因 最近新游戏在Iphone6 ...
最新文章
- linux 文本搜索命令 grep egrep fgrep 区别
- Ajax的优缺点以及异步和同步的区别
- 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | native 函数查询 | dalvik_system_DexFile.cpp#defineClassNative 函数 )
- golang中的strings.Repeat
- python中不同类型的数据不能相互运算_python数据类型和运算
- mfc中加logo以及背景图
- LauncherApplication
- xstat博客主题php,WordPress博客主题:Diaspora 简约文艺范主题
- c语言和plc编程,PLC编程C语言.ppt
- Springboot2 Swagger3 集成
- oracle sql的应用场景,oracle 3个适用sql场景
- C++ string类的说明
- mysql余额存浮点数还是int_我应该将字段PRICE作为int或float形式存储在数据库中吗?...
- c++new时赋初值_C++ Lesson 7:new,delete amp; 类的重用
- 关于平方根倒数速算法(雷神之锤3,牛B)
- 再学 GDI+[65]: 路径画刷(5) - SetGammaCorrection
- SublimeText 3 高亮 MATLAB语法
- unity导入导出excel的功能
- Java项目:超市进销存管理系统(java+SSM+JSP+bootstrap+jQuery+mysql)
- 中规中矩的linux安装redis
热门文章
- Git的基本使用,多人协作开发的使用
- 从零开始学习微服务 -微服务基本概述、微服务案例
- 模式识别大作业-代码
- RoBERTa 详解
- 勤哲excel服务器出入库管理系统,如何利用勤哲Excel服务器制作库存管理系统.doc...
- 推荐高可靠性的cypress异步SRAM
- 计算机风景画作品,电脑制作的风景画作品
- Elasticsearch简单搜索以及聚合分析
- STM32103读取 DHT11时 对 DHT11_Read_Bit 的理解
- MacBook安装WTG不详细的教程(含泪踩坑)