c# - TextAsset 返回 null

标签 c# arrays string unity-game-engine

我有一个脚本,我想将文本资源转换为字符串数组,然后使用它来修改 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

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

关于c# - TextAsset 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080108/

相关文章:

arrays - 如何在 Swift 的 View Controller 类中与 Collection View 委托(delegate)共享数据

arrays - 在 Swift 中更改 Array 类型的 PFUser 对象中元素的值

javascript - typescript -我在使用函数的返回值时遇到问题

vb.net - VB.NET-从字符串中删除字符

vb.net - 如何查找字符串中子字符串的出现次数 vb.net

c# - 更新一个值

c# - 在不安装 Visual Studio 的情况下从 WPF/Win Form 应用程序连接到 Win CE 设备

c# - 已经定义了InitializeComponent和contentLoaded之间的歧义

c# - 如果对象被垃圾收集,如何得到通知?

java - 如何通过匹配正则表达式提取所有子字符串?