我有一个脚本,我想将文本资源转换为字符串数组,然后使用它来修改 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);
}
最佳答案
I assume it's because I'm converting to the text asset into a string the wrong way. Could someone tell me what I'm doing wrong please?
代码:
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
, .json
, .csv
, .yaml
,和.fnt
3。 SaveKeys1
文件未放置在正确的文件夹中。对于Resources.Load
函数要工作,文件必须放置在名为 Resources
的文件夹中。通常,将此文件放置在名为 Resources
的任何文件夹中应该可以工作,但仅用于测试目的,在 Assets/Resources
中创建文件夹目录,然后将 SaveKeys1 文件放在那里。这应该可行。
关于c# - TextAsset 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080108/