Unity(二)——Resources资源动态加载

特殊文件夹

一、工程路径获取

Application.dataPath

一般情况下只在编辑模式下使用

二、Resources资源文件夹

路径获取

cs 复制代码
print(Application.dataPath+"/Resources");

需要手动创建Resources

作用:需要通过Resources相关的API,该文件夹下的所有文件都会被打包出去,打包时Unity会对其压缩加密,该文件夹打包后只读,只能通过Resources相关API加载

三、StreamingAssets流动资源文件夹

cs 复制代码
print(Application.streamingAsstePath);

需要手动创建

千万不能写成上面那种获取方式

作用:打包出去不会被压缩加密,移动平台只读,PC端可读可写,可以放入一些需要自定义动态加载的初始资源

四、PreisitentDataPath持久数据文件夹

路径获取

cs 复制代码
print(Application.persistentDataPath);

作用:固定数据文件夹,任何平台可读可写

五、Pligins插件文件夹

路径获取,一般不获取

需要自己创建

作用:不同平台的插件相关文件

六、Editor编辑器文件夹

路径获取,一般不获取

需要自己创建

作用:放编辑器相关文件

Resources同步加载

注意:自己创建,名字不能写错

一、Resources资源加载的作用

通过代码动态加兹安Resources文件夹下指定路径资源,避免繁琐的拖曳动作

二、常用资源类型

1.预设体------GameObject

2.音效文件------AudioClip

3.文本文件------TextAsset

3.图片文件------Texture

5.其他类型------需要什么用什么类型

注意:预设体对象加载需要实例化,其他资源加一般直接用

三、资源同步加载 普通方法

1.预设体加载

创建到场景上,所以要实例化

cs 复制代码
//第一步:加载预设体资源文件
Object obj = Resources.Load("Cube");
//第二步:一定要进行实例化
Instantiate(obj);

2.音效资源

切片文件是要放在音效文件的切片上

后面是在Resources文件下的文件路径

3.文本资源

文本资源支持的文件:

.txt

.xml

.bytes

.json

.html

.csv

4.图片资源

5.资源同名解决方式

四、资源同步加载 泛型方法

Resources异步加载

一、Resources异步加载是什么

为了防止同步加载造成的卡顿,开多线程来防止卡顿

缺点:不能马上加载使用,至少要等一帧

二、Resources异步加载方法

1.通过异步加载中的完成事件监听,使用加载的资源

固定搭配

2.通过协程 使用加载的资源

协程异步加载要舒服一点,自我感觉

Resources卸载资源

一、Resources重复加载资源不会浪费内存

加载完之后就作为缓存了,不会浪费内存,但是会浪费性能

二、如何手动释放掉缓存的资源

注意:不能释放GameObject的和实例化的对象

1.卸载指定资源

2.卸载未使用资源

一般配合GC使用

相关推荐
RReality38 分钟前
【Unity Shader URP】全息扫描线(Hologram Scanline)源码+脚本控制
ui·unity·游戏引擎·图形渲染
渔民小镇2 小时前
一次编写到处对接 —— 为 Godot/Unity/React 生成统一交互接口
java·分布式·游戏·unity·godot
RReality15 小时前
【Unity Shader URP】序列帧动画(Sprite Sheet)实战教程
unity·游戏引擎
mxwin15 小时前
Unity URP 多线程渲染:理解 Shader 变体对加载时间的影响
unity·游戏引擎·shader
呆呆敲代码的小Y17 小时前
【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目
人工智能·游戏·unity·游戏引擎·热更新·yooasset·免费游戏
nainaire17 小时前
自学虚幻引擎记录1
游戏引擎·虚幻
想你依然心痛20 小时前
HarmonyOS 5.0游戏开发实战:构建高性能2D休闲游戏引擎与 monetization 系统
华为·游戏引擎·harmonyos
黄思搏2 天前
基于标注平台数据的 Unity UI 自动化构建工作流设计与工程实践
ui·unity·蓝湖·vectoui
羊羊20352 天前
开发手札:Unity6000与Android交互
android·unity·android-studio
Zarek枫煜3 天前
C3 编程语言 - 现代 C 的进化之选
c语言·开发语言·青少年编程·rust·游戏引擎