2017-08-15 118 views
0
string filePath = "hfba_25"; 
TextAsset textAsset = Resources.Load(filePath) as TextAsset; 
string fileString = textAsset.text; 

我似乎无法弄清楚为什么资源不会加载不在编辑器中,也不会在Android设备上加载?该文件hfba_25夹中Assets > Resources > hfba_25Unity:Resources.Load无法正常工作

Edit_1:textAsset始终返回NULL

+1

什么“不起作用”?你有任何错误信息?你在'fileString'变量中得到了什么? – Hellium

+0

@Hellium没有我得到textAsset为空,没有其他错误信息 – randomjoe2

+0

你检查你的文件格式是否被支持? https://docs.unity3d.com/Manual/class-TextAsset.html – OsmanSenol

回答

1

如果textAsset总是null,这可能意味着两件事(因您的代码):

  1. 文件Resources subdir中不存在hfba_25;
  2. 该文件确实存在,但不能转换为TextAsset

要检查两个是真的,你需要将代码改成这样:

TextAsset textAsset = (TextAsset)Resources.Load(filePath); 
Debug.Log(textAsset); 

然后在Unity运行和检查控制台。

如果您刚获得Null,则表示它为1(文件不存在)。

如果您获得InvalidCastException: Specified cast is not valid.,则表示它是2,该文件存在但不能转换为TextAsset类型。

发生这种情况是因为在C#中,如果使用关键字as进行强制转换,当强制转换无效时,您不会收到异常,而是将参考设置为null

+0

是的,你是对的。 json文件在Windows中保存为Type:File而不是Type:json。谢谢男人/女人。 – randomjoe2