Unity中如何在编辑模式创建文件并在构建版本中访问其路径?
Unity 编辑/构建版本通用文件访问方案
先明确:Resources文件夹行不通
Resources是只读目录,只能存放打包前就准备好的静态资源,完全没法在运行时(不管是编辑模式还是构建版本)创建或修改文件,直接排除这个选项。
可行的解决办法
1. 自定义统一共享目录(最推荐)
手动指定一个双方都能访问的路径,比如项目根目录下的CustomData文件夹:
- 编辑模式下:用
Application.dataPath + "/../CustomData",直接指向项目根目录的自定义文件夹 - 构建版本下:Windows构建版的
Application.dataPath是游戏目录/游戏名_Data,用Path.Combine(Application.dataPath, "../CustomData")就能定位到游戏根目录的同名字段,和编辑模式的路径对应
代码示例:
public static string GetSharedDataPath() { string path; #if UNITY_EDITOR path = Path.Combine(Application.dataPath, "../CustomData"); #else path = Path.Combine(Application.dataPath, "../CustomData"); #endif // 自动创建目录避免报错 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } return path; }
注意:发布构建版时,要把编辑模式下CustomData里的文件复制到游戏根目录的对应文件夹,或者让程序启动时自动同步。
2. 小数据用PlayerPrefs直接存
如果你的数据是简单键值对(比如玩家设置、基础状态),直接用PlayerPrefs就行——Unity会自动处理不同模式下的存储路径问题,不用你手动管理路径,省心省力。
3. 同步两个persistentDataPath的文件
写个编辑器工具,在构建前自动把编辑模式persistentDataPath下的文件复制到构建版的对应路径;或者在游戏启动时,让程序自动从编辑版路径同步文件(注意要确保构建版有权限访问编辑版的路径)。
内容的提问来源于stack exchange,提问作者Kyzlyk
相关产品推荐
相关产品推荐

