17.Resources资源动态加载-Unity中特殊文件夹
17.1 知识点
Application.dataPath 工程路径获取
- Application类中的dataPath静态变量 获取工程路径
- 包含目标设备上的游戏数据文件夹路径(只读)。
- 注意 该方式 获取到的路径 一般情况下 只在 编辑模式下使用
- 我们不会在实际发布游戏后 还使用该路径
print(Application.dataPath);//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets
Resources 资源文件夹
- 需要我们自己手动在Asset文件下创建Resources文件夹 名字一定不要错
- 路径获取:一般不获取
- 只能使用Resources相关API进行加载
- 如果硬要获取 可以用工程路径拼接
print(Application.dataPath + "/Resources");//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets\Resources
- 创建:Resources文件夹需要我们自己创建
- 作用:资源文件夹
- 需要通过Resources相关API动态加载的资源需要放在其中
- 该文件夹下所有文件都会被打包出去
- 打包时Unity会对其压缩加密 所以一般不会用Application.dataPath + “/Resources” 得到路径
- 该文件夹打包后只读 只能通过Resources相关API加载
- 注意:不要把所有游戏资源都丢进去 一般放在美术资源文件夹就行了 需要动态加载或者打包的再丢进去
Application.StreamingAssets 流动资源文件夹
- 需要我们自己手动在Asset文件下创建StreamingAssets文件夹 名字一定不要错
- Application类中的streamingAssetsPath静态变量 获取流动资源文件夹路径
- StreamingAssets 文件夹的路径(只读)。
- 路径获取:
print(Application.streamingAssetsPath);
- 创建:StreamingAssets文件夹需要我们自己创建
- 作用:流文件夹
- 打包出去不会被压缩加密,可以任由我们摆布
- 移动平台只读,PC平台可读可写
- 可以放入一些需要自定义动态加载的初始资源
Application.persistentDataPath 持久数据文件夹
- Application类中的persistentDataPath静态变量 获取持久数据文件夹路径
- 包含持久数据目录的路径(只读)。
- 路径获取:
print(Application.persistentDataPath);//C:/Users/78529/AppData/LocalLow/DefaultCompany/UnityTeach2
- 注意:不需要我们自己将创建
- 作用:固定数据文件夹
- 所有平台都可读可写
- 一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取的文件都放在其中
- 比如游戏进行时要存数据文件,或者要热更新,就可以存到这个文件夹下
- Resources和StreamingAssets都是只读的
- 作用:固定数据文件夹
Plugins 插件文件夹
- 需要我们自己手动在Asset文件下创建Plugins文件夹 名字一定不要错
- 注意:需要我们自己创建
- 作用:插件文件夹
- 不同平台的插件相关文件放在其中
- 比如IOS和Android平台 可能需要对应平台提供的代码包才能在Unity使用
- 以后搞SDK相关的时候可能才用得到
Editor 编辑器文件夹
- 需要我们自己手动在Asset文件下创建Editor文件夹 名字一定不要错
- 路径获取:一般不获取
- 如果硬要获取 可以用工程路径拼接
print(Application.dataPath + "/Editor");
- 注意:需要我们自己将创建
- 作用:编辑器文件夹
- 开发Unity编辑器时,编辑器相关脚本放在该文件夹中
- 该文件夹中内容不会被打包出去
- 作用:编辑器文件夹
Standard Assets 默认资源文件夹
- 需要我们自己手动在Asset文件下创建Standard Assets文件夹 名字一定不要错
- 注意:需要我们自己将创建
- 作用:默认资源文件夹
- 一般Unity自带资源都放在这个文件夹下
- 代码和资源优先被编译
17.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson17_Resources资源动态加载_Unity中特殊文件夹 : MonoBehaviour
{
void Start()
{
#region 知识点一 工程路径获取
//Application类中的dataPath静态变量 获取工程路径
//包含目标设备上的游戏数据文件夹路径(只读)。
//注意 该方式 获取到的路径 一般情况下 只在 编辑模式下使用
//我们不会在实际发布游戏后 还使用该路径
//游戏发布过后 该路径就不存在了
print(Application.dataPath);//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets
#endregion
#region 知识点二 Resources 资源文件夹
//需要我们自己手动在Asset文件下创建Resources文件夹 名字一定不要错
//路径获取:一般不获取
//只能使用Resources相关API进行加载
//如果硬要获取 可以用工程路径拼接
print(Application.dataPath + "/Resources");//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets\Resources
//这样获取意义不大
//创建:Resources文件夹需要我们自己创建
//作用:资源文件夹
//1-1.需要通过Resources相关API动态加载的资源需要放在其中
//1-2.该文件夹下所有文件都会被打包出去
//1-3.打包时Unity会对其压缩加密 所以一般不会用Application.dataPath + "/Resources" 得到路径
//1-4.该文件夹打包后只读 只能通过Resources相关API加载
//注意:不要把所有游戏资源都丢进去 一般放在美术资源文件夹就行了 需要动态加载或者打包的再丢进去
#endregion
#region 知识点三 StreamingAssets 流动资源文件夹
//需要我们自己手动在Asset文件下创建StreamingAssets文件夹 名字一定不要错
//Application类中的streamingAssetsPath静态变量 获取流动资源文件夹路径
//StreamingAssets 文件夹的路径(只读)。
//路径获取:
print(Application.streamingAssetsPath);
//注意:千万不要这样写!!这样写在PC平台没有问题 打包出去之后dataPath会失效 会有问题!!
//print(Application.dataPath + "/StreamingAssets");
//创建:StreamingAssets文件夹需要我们自己创建
//作用:流文件夹
//2-1.打包出去不会被压缩加密,可以任由我们摆布
//2-2.移动平台只读,PC平台可读可写
//2-3.可以放入一些需要自定义动态加载的初始资源
#endregion
#region 知识点四 persistentDataPath 持久数据文件夹
//Application类中的persistentDataPath静态变量 获取持久数据文件夹路径
//包含持久数据目录的路径(只读)。
//路径获取:
print(Application.persistentDataPath);//C:/Users/78529/AppData/LocalLow/DefaultCompany/UnityTeach2
//注意:不需要我们自己将创建
//作用:
//固定数据文件夹
//3-1.所有平台都可读可写
//3-2.一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取的文件都放在其中
//比如游戏进行时要存数据文件,或者要热更新,就可以存到这个文件夹下
//Resources和StreamingAssets都是只读的
#endregion
#region 知识点五 Plugins 插件文件夹
//需要我们自己手动在Asset文件下创建Plugins文件夹 名字一定不要错
//路径获取:一般不获取
//注意:需要我们自己创建
//作用:插件文件夹
//不同平台的插件相关文件放在其中
//比如IOS和Android平台 可能需要对应平台提供的代码包才能在Unity使用
//以后搞SDK相关的时候可能才用得到
#endregion
#region 知识点六 Editor 编辑器文件夹
//需要我们自己手动在Asset文件下创建Editor文件夹 名字一定不要错
//路径获取:一般不获取
//如果硬要获取 可以用工程路径拼接
print(Application.dataPath + "/Editor");
//注意:需要我们自己将创建
//作用:编辑器文件夹
//5-1.开发Unity编辑器时,编辑器相关脚本放在该文件夹中
//5-2.该文件夹中内容不会被打包出去
#endregion
#region 知识点七 Standard Assets 默认资源文件夹
//需要我们自己手动在Asset文件下创建Standard Assets文件夹 名字一定不要错
//路劲过去:一般不获取
//注意:需要我们自己将创建
//作用:默认资源文件夹
//一般Unity自带资源都放在这个文件夹下
//代码和资源优先被编译
#endregion
}
}
17.3 练习题
在你的工程中创建这些特殊文件夹
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com