Unity:Resources.Load无效

时间:2017-08-15 11:13:21

标签: c# android unity3d resources assets

string filePath = "hfba_25";
TextAsset textAsset = Resources.Load(filePath) as TextAsset;
string fileString = textAsset.text;

我似乎无法弄明白为什么资源不会在编辑器中加载而且也不会在Android设备上加载?文件hfba_25位于文件夹Assets > Resources > hfba_25

Edit_1:textAsset始终以NULL

的形式返回

1 个答案:

答案 0 :(得分:1)

如果textAsset始终为null,则可能意味着两件事(由于您的代码):

  1. hfba_25 subdir;
  2. 中不存在Resources文件
  3. 该文件确实存在,但无法转换为TextAsset
  4. 要检查两者中哪一个为真,您需要将代码更改为:

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

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

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

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

    这是因为在C#中,如果使用关键字as进行投射,当投射无效时,您不会获得异常,而是将参考设置为null