搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
花生_TL007
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
蓝桥杯历届真题之三羊献瑞(DFS)_三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ----------------
2
ggplot2-标度、坐标轴和图例9_scale_size_discrete
3
Java绘图_java画图代码
4
Git commit 中的Change-Id是什么_git amend gerrit set change-id
5
算法学习之路和程序员(技术)学习必读书籍_怎样阅读书本上的算法
6
奇虎360 php t5级别,奇虎360凭什么估值3800亿?核心价值只是他而已!
7
江苏省专转本计算机专业大类《计算机基础理论 1.2(二)小节习题答案》_7、计算机硬件系统是执行软件程序的物质基础,其中能执行程序指令的是( ) a.io设备
8
transition transform属性造成文字抖动及模糊的解决方法_css transition transform 导致文字上下浮动
9
Linux让终端只接受键盘输入_shell模拟键盘输入
10
Android开发——使用ADB Shell命令实现模拟点击(支付宝自动转账实现)
当前位置:
article
> 正文
AssetsBuddle_loadasset
("assetbundlemanifes
作者:花生_TL007 | 2024-02-14 22:38:29
赞
踩
loadasset
("assetbundlemanifest") 为空
部分内容引自SIKI学院
CreateAssetBundles:
[
MenuItem
(
"AssetBundles/Build AssetBundles"
)]
static
void
BuildAllAssetBundles
()
{
string
dir =
"AssetBundles"
;
if
(
Directory
.
Exists
(dir)==
false
)
{
Directory
.
CreateDirectory
(dir);
}
BuildPipeline
.
BuildAssetBundles
(dir,
BuildAssetBundleOptions
.
UncompressedAssetBundle
,
BuildTarget
.
StandaloneWindows64
);
}
或者:
[MenuItem("TobyStarkTools/AssetBundle/PackingAB")]
static void BuildAssetBundle()
{
//打包到Asset目录外面
string path = Application.dataPath + "/../www/AssetBundls";
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
if (BuildPipeline.BuildAssetBundles(path,
BuildAssetBundleOptions.None,
BuildTarget.StandaloneWindows64))
{
Debug.Log("打包成功");
}
清理:
[
MenuItem
(
"AssetBundles/clear AssetBundles"
)]
static
void
Clear
(){
string
dir =
"AssetBundles"
;
if
(
Directory
.
Exists
(dir)==
true
)
{
string
path =
Application
.
dataPath
+
"/../"
+ dir+
"/"
;
Directory
.
Delete
(path,
true
);
}
}
或者:
[MenuItem("aaa/b")]
static void de(){
string path = Application.dataPath + "/../www/AssetBundls";
System.IO.Directory.Delete (path,true);
Debug.Log ("清除成功");
}
LoadAssets:
加载一种资源
string
path =
"AssetBundles/cubewall.ab"
;
AssetBundle ab = AssetBundle.LoadFromFile(path);
GameObject wallPrefab = ab.LoadAsset<GameObject>("CubeWall");
Instantiate(wallPrefab);
yield
return
null
;
加载所有资源
AssetBundle ab2 = AssetBundle.LoadFromFile("AssetBundles/cubewall.ab");
Object[] objs= ab2.LoadAllAssets();
foreach(Object o in objs)
{
Instantiate(o);
}
第一种加载AB的方式 LoadFromMemoryAsync
AssetBundleCreateRequest request = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path));
yield
return
request;
AssetBundle ab = request.assetBundle;
GameObject wallPrefab = ab.LoadAsset<GameObject>(
"CubeWall"
);
Instantiate(wallPrefab);
第二种加载AB的方式 LoadFromFile
AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(path);
yield
return
request;
AssetBundle ab = request.assetBundle;
GameObject wallPrefab = ab.LoadAsset<GameObject>(
"CubeWall"
);
Instantiate(wallPrefab);
第三种加载AB的方式 WWW
如果是本地服务器:
while
(Caching.ready ==
false
)
{
yield
return
null
;
}
WWW www =
WWW.LoadFromCacheOrDownload
(
@"file://F:\CodeFiles\unity\Framwork\AB\AssetBundleProject\AssetBundles\cubewall.ab"
,
2
);
WWW www =
WWW.LoadFromCacheOrDownload
(
@"
http://localhost/AssetBundles/cubewall.ab
"
,
2
);
yield
return
www;
if
(
string
.IsNullOrEmpty(
www.error)==
false
)
{
Debug.Log(
www.error
);
yield
break
;
}
AssetBundle ab =
www.assetBundle
;
GameObject wallPrefab = ab.LoadAsset<GameObject>(
"CubeWall"
);
Instantiate(wallPrefab);
第四种方式 使用UnityWebRequest
//string uri = @"file://F:\CodeFiles\unity\Framwork\AB\AssetBundleProject\AssetBundles\cubewall.ab";
string
uri =
@"
http://localhost/AssetBundles/cubewall.ab
"
;
UnityWebRequest request = UnityWebRequest.GetAssetBundle(uri);
yield
return
request.Send();
//AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
AssetBundle ab = (request.downloadHandler
as
DownloadHandlerAssetBundle).assetBundle;
GameObject wallPrefab = ab.LoadAsset<GameObject>(
"CubeWall"
);
Instantiate(wallPrefab);
Instantiate(wallPrefab);
//加载依赖文件
AssetBundle
manifestAB =
AssetBundle
.
LoadFromFile
(
"AssetBundles/AssetBundles"
);
AssetBundle
ab =
AssetBundle
.
LoadFromFile
(
"AssetBundles/cubewall.ab"
);
AssetBundleManifest
manifest = manifestAB.
LoadAsset
<
AssetBundleManifest
>(
"AssetBundleManifest"
);
string
[] strs = manifest.
GetAllDependencies
(
"cubewall.ab"
);
foreach
(
string
name
in
strs)
{
print
(name);
AssetBundle
.
LoadFromFile
(
"AssetBundles/"
+ name);
}
GameObject
wallPrefab = ab.
LoadAsset
<
GameObject
>(
"CubeWall"
);
Instantiate
(wallPrefab);
或者:
//从AB中加载资源,需要实例化预设 显然不能只加载Prefab,因为他依赖了模型和材质,需要去解决他们的依赖关系
private string m_ABPath = "";
//依赖文件
private AssetBundleManifest m_Manifest;
void Start ()
{
m_ABPath = Application.dataPath + "/../www/AssetBundls/";
AssetBundle mainfestBundle = null;
//1.先加载依赖文件
m_Manifest = LoadAsset<AssetBundleManifest>("AssetBundls","AssetBundleManifest",out mainfestBundle);
string abName = "Download/Prefab/EnvPrefabs/a.assetbundle";
//2.再加载依赖项 获取哪一个ab包的依赖项
string[] arrDps = m_Manifest.GetAllDependencies(abName);
AssetBundle[] arrDpsBundle = new AssetBundle[arrDps.Length];
for (int i = 0; i < arrDps.Length; i++)
{
AssetBundle dpsBundle = null;
//注意依赖项的 路径
LoadAsset<Object>(arrDps[i], arrDps[i],out dpsBundle);
arrDpsBundle[i] = dpsBundle;
Debug.Log("2加载依赖项->"+arrDps[i]);
}
//3.最后加载预设体 并clone
AssetBundle jianzuBundle = null;
GameObject objPrefab = LoadAsset<GameObject>(abName, "a",out jianzuBundle);
Instantiate(objPrefab);
//-----------------------卸载资源镜像
//卸载预设AB镜像
jianzuBundle.Unload(true);
//卸载依赖项的AB镜像
for (int i = 0; i < arrDpsBundle.Length; i++)
{
arrDpsBundle[i].Unload(false);
}
//卸载依赖文件AB镜像
mainfestBundle.Unload(true);
}
public T LoadAsset<T>(string abName,string SourceName)where T:Object
{
AssetBundle ab= AssetBundle.LoadFromFile(string.Format("{0}/{1}", m_ABPath, abName));
return ab.LoadAsset<T>(SourceName);
}
//方便卸载AB的镜像,所以需要调用者再次获取到这个AB
public T LoadAsset<T>(string abName,string SourceName,out AssetBundle ab)where T:Object
{
ab= AssetBundle.LoadFromFile(string.Format("{0}/{1}", m_ABPath, abName));
return ab.LoadAsset<T>(SourceName);
}
文件校验:
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/花生_TL007/article/detail/82266?site
推荐阅读
article
地平线
征程
5
开发
平台简介_
地平线
j
5
...
地平线
征程
5
开发
平台,基于立讯LS
5
00 uSOM基础
开发
套件。_
地平线
j
5
地平线
j
5
...
赞
踩
article
vue3+Element
plus
实现
暗黑
模式
_
element
plus
暗黑
模式
...
通过监听开关的触发状态改变
暗黑
模式
element
plus
提供了
暗黑
模式
的功能如果需要暗色
模式
,只需在 html 上添...
赞
踩
article
跨境
电商
新风潮:
充分发挥
海外
云
手机
的威力...
在互联网行业迅速发展的大环境下,
跨境
电商
、
海外
社交媒体营销以及游戏产业等重要领域都越来越需要借助
海外
云
手机
的协助。
跨境
电...
赞
踩
article
【图文】
Palworld
幻兽
帕鲁
社区
服务器
超详细
搭建
教程_
帕鲁
社区
服务器
...
单论纸面成绩,自1月19日正式上线后,这款发售前名不见经传的游戏,在三天内就卖了500万份,Steam最高同时在线人数突...
赞
踩
article
ATSHA204
芯片
手册阅读笔记_
atmel
atsha204
...
阅读
ATSHA204
英文文档过程记录的笔记_
atmel
atsha204
atmel
atsha204
...
赞
踩
article
C++
Qt
开发——
动画
框架
、
状态机
框架
_qt
c++
电流
动画
...
C++
Qt
开发——
动画
框架
、
状态机
框架
_qt
c++
电流
动画
qt
c++
电流
动画
简介
Qt
...
赞
踩
article
在
面试中如何回复
擅长
vue
还是
react
...
我想这也是一个作为一个前端开发工程师需要具备以及掌握的能力,当然,除此之外,作为一个开发,我觉得前端开发的一个技术框架掌...
赞
踩
article
Docker
之
nacos
集群
部署_
nacos
镜像
集群
部署...
Nacos
镜像
拉取及独立模式和
集群
部署,搭建
集群
并配置Nginx实现负载均衡,及报错解决_
nacos
镜像
集群
部署naco...
赞
踩
article
vue
安装
m>no
m>d
m>e
m>-
m>sass
m>问题解决_
m>path
m>
m>d
m>:\
vue
_service\ys
m
\push
m
al...
在项目内部添加一个 .np
m
rc 文件手动新建一个文本文档,更改后缀名就可以了新建完成用记事本打开,加入以下三行phan...
赞
踩
article
AssetBundle
详解_
asset
bundles
文件...
又来力,又是新的一篇总结性质的文章,这次接上篇来讲一讲热更新过程中的重要角色
AssetBundle
,也就是ab包。_as...
赞
踩
article
自动化办公从
EXCEL
VBA
转
PYTHON
xlwings
+
pandas
自用代码对比实现_exce...
自用的
EXCEL
VBA
代码,用
PYTHON
xlwings
+
pandas
对比实现,自学自用,留存备查能用上的也可供参考...
赞
踩
article
寿司
转盘
,
用 C 编码...
寿司
店周年庆
,
正在举办优惠活动回馈新老客户
寿司
转盘
上总共有 n 盘
寿司
,
prices[i] 是第 i 盘
寿司
的价格
,
如果...
赞
踩
article
Qt开发
Android
环境
配置
_
qt
配置
安卓开发
环境
...
将下载的压缩包解压到你的指定位置,并进入,打开sdkmananger.exe,打开后需要等待一会儿会出界面,等下面进度条...
赞
踩
article
【
Docker
】
Docker
Image
(
镜像
)...
Docker
镜像
的讲解与实战【
Docker
】
Docker
Image
(
镜像
) ...
赞
踩
article
十一
、
VUE基础学习篇(
组件
化
component
、
component
s)-
全局
/局部
组件
、
父
组件
/子...
码云实时更新学习demo地址:https://gitee.com/dxl96/vuexuexiVUE基础篇(
组件
化com...
赞
踩
article
Java
命名
规范
_
java
命名
标准遵循的文档...
java
命名
规范
_
java
命名
标准遵循的文档
java
命名
标准遵循的文档 ...
赞
踩
article
Unity
与
微信
小
程序
(
游戏
)交互_
unity
调用
微信
小
程序
函数...
本文基于minigame-
unity
-webgl-transform方案,此方案支持大部分
Unity
组件及方法,比较可惜...
赞
踩
article
MFC实现
Edit
输入
限制(只允许
输入
数字
,负号和
小数
点)_mfc
编辑框
限制
数字
和
小数
...
1)添加个C++类 eg. class Dot:public C
Edit
2)给这个类添加onChar()消息 afx_...
赞
踩
article
ElementPlus
修改
主题
色和
暗黑
模式切换_
element
plus
自定义
主题
...
本文讲述根本
ElementPlus
官方教程配置项目的
自定义
主题
色的两种方法和
暗黑
模式切换;_
element
plus
自定...
赞
踩
article
华为
云盘古
气象
(
Pangu
-
Weather
)大
模型
调试运行之小白教程...
最近盘古
气象
大
模型
研究成果在《Nature》正刊发表,这个消息引起了大家的广泛关注,作为地理
模型
爱好者,在之前的学习中接...
赞
踩
相关标签
嵌入式硬件
人工智能
图像处理
视觉检测
vue.js
前端
javascript
云手机
海外云手机
云手机海外版
国外云手机
github
物联网
安全
qt
c++
qt项目实战
qt教程
qt5
react.js
docker
java
linux
nodejs
npm