1.Unity运行时路径
1.Unity运行时路径
csharp
1).Resources
a.核心定位: 工程内特殊文件夹, 打包进安装包
b.不同平台存储位置
随安装包存储(与游戏程序同目录)
c.读写权限
只读(运行时无法写入/修改)
d.加载/访问方式
- Resources.Load<T>()
- Resources.LoadAsync<T>()
e.关键注意事项
- 文件夹内所有资源被强制打包, 即使未被引用, 易导致安装包体积膨胀
- "不支持热更新", 无法替换已打包资源
- 可在工程内创建多个子文件夹
csharp
2).StreamingAssets
a.核心定位: 工程内特殊文件夹, "原始资源打包目录"
b.不同平台存储位置
- PC/Mac: 游戏安装目录/StreamingAssets
- Android: APK压缩包内("无法直接访问文件")
- iOS: IPA内("无法直接访问文件")
c.读写权限
只读(运行时无法写入, 内容与安装包一致)
d.加载 / 访问方式
- PC/Mac: File.ReadAllText()/FileStream
- Android/iOS: "必须用UnityWebRequest"
e.关键注意事项
- 资源不压缩, 不转换格式, 保留原始数据
- "移动端因在压缩包内, 不能用File类直接读取, 必须用UnityWebRequest"
csharp
3).PersistentDataPath
a.核心定位: 运行时设备本地存储路径(沙盒目录)
b.不同平台存储位置
- PC/Mac: 用户目录/Application Data/游戏名
- Android: /storage/emulated/0/Android/data/包名/files
- iOS: App Sandbox/Documents
c.读写权限
可读写(唯一推荐的运行时写入路径)
d.加载/访问方式, 调用IO API
File.ReadAllText(), File.WriteAllText(), FileStream
e.关键注意事项
- 路径由设备自动分配, 跨平台差异大, 必须用Path.Combine()拼接路径
- 数据不会随游戏卸载而删除("需手动删除")
- 移动端需申请存储权限
csharp
4).DataPath
a.核心定位: 游戏安装包根目录路径
b.不同平台存储位置
- PC/Mac: 游戏安装目录
- Android: APK所在目录(只读)
- iOS: IPA解压目录(只读)
c.读写权限
- PC/Mac: 可读可写
- 移动端: 只读
d.加载/访问方式
- PC/Mac: File类/FileStream
- 移动端: 仅能读取安装包内文件
e.关键注意事项
- 移动端"绝对不要尝试写入", 会触发权限错误
- 游戏卸载后路径被删除, 不适合存储用户数据
csharp
5).TempPath
a.核心定位: 运行时临时缓存路径
b.不同平台存储位置
系统临时文件夹(如Windows的%temp%)
c.读写权限
可读写
d.加载/访问方式
File类/FileStream
e.关键注意事项
- 数据重启游戏/设备后会被清空, 仅适合临时存储
- 无需手动清理, 系统会自动回收
- 读写速度快, 适合高频临时IO操作