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

Flutter中如何在Text文本组件内插入变量?按文档操作不生效怎么办

Unity Text组件插入变量的正确实现方法

以下是UGUI Text组件、TextMeshPro组件两种场景的实现方案,以及常见错误排查:

实现步骤

1. 引用对应命名空间

  • 使用旧版UGUI Text组件:在脚本顶部添加 using UnityEngine.UI;
  • 使用新版TextMeshPro Text组件:在脚本顶部添加 using TMPro;

2. 编写赋值逻辑

旧版UGUI Text示例代码

using UnityEngine;
using UnityEngine.UI;

public class LevelDisplay : MonoBehaviour
{
    // 需在Inspector面板拖拽对应Text组件到该字段赋值
    public Text levelText;
    public int myLevel = 5;

    private void Start()
    {
        // 直接赋值变量,需将数值类型转为字符串
        levelText.text = myLevel.ToString();
        // 需要拼接文本可以用字符串插值,比如输出"当前等级:5"
        // levelText.text = $"当前等级:{myLevel}";
    }

    // 若myLevel会动态更新,调用该方法刷新显示即可
    public void RefreshLevel(int newLevel)
    {
        myLevel = newLevel;
        levelText.text = myLevel.ToString();
    }
}

新版TextMeshPro示例代码

仅需修改变量类型即可,其他逻辑完全一致:

using UnityEngine;
using TMPro;

public class LevelDisplay : MonoBehaviour
{
    // 仅此处类型和UGUI不同
    public TMP_Text levelText;
    public int myLevel = 5;

    private void Start()
    {
        levelText.text = myLevel.ToString();
    }

    public void RefreshLevel(int newLevel)
    {
        myLevel = newLevel;
        levelText.text = myLevel.ToString();
    }
}

常见不生效原因排查

  • 组件变量未赋值:Inspector面板对应字段为空,运行会触发空引用报错
  • 组件类型不匹配:使用TextMeshPro却声明了UGUI的Text类型,无法正确获取组件
  • 赋值逻辑位置错误:仅在Start执行了一次赋值,后续myLevel更新时没有重新给text属性赋值
  • 语法错误:text属性为小写开头,误写为大写Text会触发编译报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:54:01