C# TextAsset返回空值

C# TextAsset返回空值,c#,arrays,string,unity3d,C#,Arrays,String,Unity3d,我有一个脚本,我想将文本资源转换为字符串数组,然后用它来修改PlayerPrefs。但是,在运行期间,我在下面粘贴的代码的第二行上不断收到NullReferenceException错误。我认为这是因为我以错误的方式将文本资源转换为字符串。有人能告诉我我做错了什么吗?谢谢 TextAsset txt = (TextAsset)Resources.Load("SaveKeys1", typeof(TextAsset)); string txtString

我有一个脚本,我想将文本资源转换为字符串数组,然后用它来修改PlayerPrefs。但是,在运行期间,我在下面粘贴的代码的第二行上不断收到NullReferenceException错误。我认为这是因为我以错误的方式将文本资源转换为字符串。有人能告诉我我做错了什么吗?谢谢

            TextAsset txt = (TextAsset)Resources.Load("SaveKeys1", typeof(TextAsset));

        string txtString = txt.text;



        char sep = (',');
        string[] keys = txtString.Split(sep);

        foreach(string key in keys)
        {
            PlayerPrefs.DeleteKey(key);
            Debug.Log(key);
        }
我假设这是因为我正在将文本资源转换为字符串 走错了路。有人能告诉我我做错了什么吗

守则:

TextAsset txt = (TextAsset)Resources.Load("SaveKeys1", typeof(TextAsset));
string txtString = txt.text;
这是正确的方法。这里没有什么问题,因为您提到了第二行,即
string txtString=txt.text导致异常,可能有两个原因

1。您的文件名拼写不正确。请直接从文件所在位置复制文件名,并将文件名直接粘贴到
Resources.Load
函数中。确保在函数中包含扩展名(
.txt
.xml
…)

2。SaveKeys1文件的扩展名不正确
TextAsset
仅支持文件扩展名,如
.txt
.html
.htm
.xml
.bytes
.csv
.yaml
.fnt


3
SaveKeys1
文件未放置在正确的文件夹中。要使
Resources.Load
功能正常工作,文件必须放在名为
Resources
的文件夹中。通常,将此文件放在名为
Resources
的任何文件夹中都可以,但仅出于测试目的,请在
Assets/Resources
目录中创建该文件夹,然后将SaveKeys1文件放在那里。这应该是可行的。

您是否确定
txt
不等于null?根据您所展示的内容,这是不清楚的。对于空引用错误,您通常只需要进行更深入的调试。将第一行拆分为更多单独的行,并进行调试,以准确找到返回
null
的部分。根据假设和猜测,最有可能的情况是
txt
在这里为空。通过调试,只有你才能知道原因。我只知道一个名为resources的文件夹中的txt文件。现在可以了。谢谢。好的,哪一个修好了?我明白了。使用时,这里的拼写很重要。快乐编码!