Unity如何让游戏程序读写资源文件?

前言

        在Unity中,分为开发环境和打包后环境。

        在开发环境中,你可以直接访问项目的文件系统,包括Assets文件夹中的所有文件。但是在打包后的环境中,你不能直接访问文件系统,因为所有的资源都被打包到了一个或多个数据文件中。

   Resources.Load是Unity提供的一个API,它可以在运行时加载Resources文件夹中的资源。这个API在开发环境和打包后的环境中都可以使用。

        所以,如果你有一些资源需要在运行时加载,你应该将这些资源放在Resources文件夹中,然后使用Resources.Load来加载它们。这样,无论你是在开发环境还是在打包后的环境中,都可以正确地加载这些资源。

常见的存放数据的路径

        Application.dataPathApplication.persistentDataPath在Unity中有不同的用途和使用场景。

Application.dataPath

        在编辑器中,这将返回你的项目的Assets文件夹的路径,开发环境时比较好用。

        在开发环境下,你可能会使用Application.dataPath来读取你的项目中的数据文件。

Application.persistentDataPath

  Application.persistentDataPath返回的是一个可以用于存储持久化数据的路径。这个路径在不同的平台上有不同的位置,但是它总是指向一个可以安全地写入数据的位置。这个路径通常用于存储用户生成的数据,如保存文件、用户设置等。

  在打包后的环境下,你可能会使用Application.persistentDataPath来存储用户生成的数据。

加载资源文件的方法

        请注意,这些文件在打包后将会被包含在你的游戏数据中,而不是在文件系统中的某个位置。这意味着你不能直接通过文件路径来访问这些文件,而是需要使用Unity提供的API来访问。

        例如,如果你有一个名为myData.txt的文件,你可以将它放在Assets/Resources文件夹中,然后通过以下代码来访问它:

TextAsset myData = Resources.Load<TextAsset>("myData");
string myDataText = myData.text;

举个栗子:加载csv文件

string filename = "文件名不带后缀"
TextAsset csvData = Resources.Load<TextAsset>(filename);
using (var reader = new StringReader(csvData.text))
{
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            Debug.Log(line);
        }
}

注意事项

Application.persistentDataPath

        Application.persistentDataPath返回的路径取决于你的应用运行的平台。以下是一些常见平台的Application.persistentDataPath的位置:

  • WindowsC:\Users\<username>\AppData\LocalLow\<companyname>\<productname>
  • Mac OS/Users/<username>/Library/Application Support/<companyname>/<productname>
  • iOS<Application>/Library/Application Support
  • Android/data/data/<packagename>/files

        在这些路径中,<username><companyname><productname><packagename>是你的应用的具体信息。

        需要注意的是,Application.persistentDataPath返回的路径是可以写入的,你可以在这个路径下存储用户生成的数据,如保存文件、用户设置等。而Resources.Load是用来加载Assets/Resources文件夹中的资源的,这个文件夹在打包后的应用中是不可写入的。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CCSBRIDGE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值