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

Unity中点击按钮后如何获取其TextMeshPro文本并与字符串对比?

问题解决:获取按钮的TextMeshPro文本并对比字符串

你的代码核心问题是错误调用了ToString()方法获取文本内容:GetComponentInChildren<TMPro.TMP_Text>()返回的是TMP_Text组件对象,直接调用ToString()得到的是组件的类型标识字符串(比如TMPro.TMP_Text),而非按钮上显示的实际文本。

修正后的代码

public void clicked()
{
    Debug.Log("Timer done");
    secondsLeft = 0;
    timerOn = false;

    questionUI.SetActive(false);
    Paused = false;
    //关闭问题界面

    // 获取子物体中的TMP_Text组件,并读取其文本内容
    TMPro.TMP_Text textComponent = GetComponentInChildren<TMPro.TMP_Text>();
    string answer = textComponent != null ? textComponent.text : string.Empty;
    
    if (questions[0] == answer)
    {
        PlayerQuests.points += 1000;
    }
}

关键修正点

  • 先获取TMP_Text组件实例,增加空引用判断,避免找不到组件时抛出NullReferenceException
  • 使用textComponent.text属性获取按钮上显示的实际文本内容,替代错误的ToString()调用
  • 空值 fallback 为string.Empty,确保后续字符串对比逻辑不会因为空组件报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:45:37