You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity加载Resources下文本文件为TextAsset时报空引用异常如何解决

Unity Resources.Load加载TextAsset空引用异常解决思路

你遇到的空引用是Resources.Load方法返回null,后续访问text属性时抛出异常,可按以下顺序排查:

1. 移除资源路径的后缀名

Resources.Load加载TextAsset类型资源时,不需要传入文件扩展名,你的代码中传入4.txt会被Unity识别为查找名为4.txt且无后缀的文件,自然匹配不到对应资源,将路径改为4即可。

2. 检查资源路径正确性

  • 确保4.txt存放在Assets/Resources目录或其下的子目录中,若存放在子目录例如Assets/Resources/Config/4.txt,加载路径需要补全子目录层级,写为Config/4
  • 路径和文件名严格匹配大小写,尤其目标平台为移动端、Linux时,Unity对路径大小写敏感
  • 禁止将Resources文件夹嵌套在Editor目录下,该目录下的资源仅能在编辑态访问,运行时不会被打包加载

3. 校验文件导入配置

选中项目内的4.txt文件,在Inspector面板检查以下配置:

  • Asset Type需设置为Text(对应TextAsset类型)
  • Include in Build选项处于勾选状态
  • 没有被标记为Editor Only的资源标签

4. 增加空值校验逻辑

所有资源加载操作都建议增加空校验逻辑,避免因资源缺失导致程序直接崩溃,修正后的参考代码如下:

using UnityEngine;

public class LoadTextFile : MonoBehaviour
{
    // 注意此处不需要加.txt后缀
    public string txtFile = "4";
    string txtContents;

    void Start ()
    {
        // 改用泛型加载更安全,避免强制类型转换风险
        TextAsset txtAssets = Resources.Load<TextAsset>(txtFile);
        if (txtAssets != null)
        {
            txtContents = txtAssets.text;
            Debug.Log("文本加载成功,内容:" + txtContents);
        }
        else
        {
            Debug.LogError($"文本资源加载失败,请检查路径是否正确:{txtFile}");
        }
    }
}

内容的提问来源于stack exchange,提问作者Pezza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:54:04