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

Unity修改Text组件时持续触发NullReferenceException问题求助

Unity NullReferenceException 修改Text内容失败的解决方法

核心错误修正

你的代码里MT = GetComponent<UnityEngine.UI.Text>();是在挂载这个脚本的物体上查找Text组件,但你实际要修改的是Menu_Text_1这个物体的Text,这是完全错误的逻辑,直接导致MT为null触发异常。修改代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

// 建议类名用大驼峰命名,避免和Unity内置Text组件重名
public class TextController : MonoBehaviour
{
    public Text targetText;
    public GameObject targetTextObj;

    void Start()
    {
        targetTextObj = GameObject.Find("Menu_Text_1");
        // 从找到的目标物体上获取Text组件
        targetText = targetTextObj.GetComponent<UnityEngine.UI.Text>();
        
        // 加空判断避免崩溃,同时输出调试信息
        if(targetText != null)
        {
            targetText.text = "HELPPP";
        }
        else
        {
            Debug.LogError("Menu_Text_1物体上未找到Text组件!");
        }
    }
}

额外排查点

  • 物体激活状态:GameObject.Find()只能找到处于激活状态的物体,如果Menu_Text_1是隐藏的,改用标签查找GameObject.FindGameObjectWithTag(),或者直接在Inspector面板拖拽赋值(更可靠)。
  • 名字与层级:确认Menu_Text_1的名字完全匹配(大小写敏感),如果物体在子物体下,需要写完整路径,比如GameObject.Find("父物体名称/Menu_Text_1")。
  • 组件类型匹配:如果你的文本用的是TextMeshPro(TMPro)组件,需要引入using TMPro;,然后获取TMP_Text组件,而非UnityEngine.UI.Text。
  • 脚本挂载位置:这个脚本可以挂载在任意激活的物体上,不需要和Menu_Text_1在同一个物体上。

更可靠的写法(推荐)

直接在Inspector面板把Menu_Text_1拖拽到变量上,避免GameObject.Find()的潜在问题:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TextController : MonoBehaviour
{
    // 在Inspector面板直接拖拽目标文本物体
    public GameObject targetTextObject;
    private Text targetText;

    void Start()
    {
        targetText = targetTextObject.GetComponent<Text>();
        if(targetText != null)
        {
            targetText.text = "HELPPP";
        }
        else
        {
            Debug.LogError("目标物体上没有Text组件!");
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:17:01