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
相关产品推荐
相关产品推荐

