Unity如何通过脚本访问Text Mesh并设置其文本内容
Unity TextMesh文本赋值解决方案
类引用问题说明
你代码中使用的Text不是TextMesh对应的类,Text是UGUI原生普通文本组件的类,归属UnityEngine.UI命名空间,和TextMesh类不属于同一组件体系。
不同场景的代码修正方案
场景1:使用传统原生TextMesh组件
using UnityEngine; public class TextMeshContentUpdate : MonoBehaviour { // 替换原有Text类型为TextMesh类型 public TextMesh textMeshObject; public void Update() { if(/* 自定义触发条件 */) { textMeshObject.text = "abc"; } } }
场景2:使用主流TextMeshPro(TMP)组件
当前Unity版本更推荐使用TextMeshPro作为文本方案,对应代码如下:
using UnityEngine; // 引入TMP专属命名空间 using TMPro; public class TMPContentUpdate : MonoBehaviour { // UGUI界面内的TMP文本用此类型 public TextMeshProUGUI uiTextMeshObject; // 3D世界空间内的TMP文本用此类型 // public TextMeshPro worldTextMeshObject; public void Update() { if(/* 自定义触发条件 */) { uiTextMeshObject.text = "abc"; // 3D文本赋值写法 // worldTextMeshObject.text = "abc"; } } }
操作注意事项
- 脚本挂载到场景对象后,将带对应文本组件的目标对象直接拖入Inspector面板的对应公开字段槽位即可完成绑定
- 若运行时报空引用错误,优先检查目标对象是否挂载了对应文本组件、公开字段是否已完成赋值
内容的提问来源于stack exchange,提问作者robboot rpo
相关产品推荐
相关产品推荐

