我有一个脚本,我想将文本资源转换为字符串数组,然后使用它来修改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);
}
答案 0 :(得分:2)
我认为这是因为我将文本资产转换为字符串 错误的方法。有人可以告诉我,我做错了吗?
代码:
TextAsset txt = (TextAsset)Resources.Load("SaveKeys1", typeof(TextAsset));
string txtString = txt.text;
是执行此操作的正确方法。那里没有任何错误,因为你提到string txtString = txt.text;
的sceond行引起异常,有两个可能的原因。
1 。您的文件名拼写不正确。请直接从文件名中复制文件名,并将名称直接粘贴到Resources.Load
函数中。确保不在函数中包含扩展名(.txt
,.xml
...)。
2 .SaveKeys1文件没有正确的扩展名。 TextAsset
仅支持.txt
,.html
,.htm
,.xml
,.bytes
,.json
,{{1}等文件扩展名},.csv
和.yaml
3 。.fnt
文件未放在正确的文件夹中。要使SaveKeys1
函数起作用,必须将文件放在名为Resources.Load
的文件夹中。通常,将此文件放在名为Resources
的任何文件夹中应该可以正常工作,但只是出于测试目的,在Resources
目录中创建文件夹,然后将SaveKeys1文件放在那里。这应该有用。