首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得TextMeshPro组件

如何获得TextMeshPro组件
EN

Stack Overflow用户
提问于 2018-03-08 11:45:44
回答 2查看 15.7K关注 0票数 4
代码语言:javascript
复制
public class ClickBub : MonoBehaviour {
int x;
int count;
TextMeshPro mytext;
TextMeshPro soretext;
GameObject textobj;
// Use this for initialization
void Start () {
    textobj = this.gameObject.transform.GetChild (0).gameObject;
    mytext = textobj.GetComponent<TextMeshPro>();

在这个mytext中是一个空值。如何将TextMeshValue分配给变量?

还说统一引擎不能转换类型。

EN

回答 2

Stack Overflow用户

发布于 2018-03-08 13:08:21

当你做的时候

代码语言:javascript
复制
textobj.GetComponent<TextMeshPro>();

统一将在对象TextMeshPro中查找textobj组件。根据您的代码,textobj是具有ClickBub脚本的对象的第一个子级。您应该首先检查编辑器中的第一个子组件是否有一个TextMeshPro组件。要确保访问所需的元素,可以尝试打印它们的名称:

代码语言:javascript
复制
void Start () 
{
    textobj = this.gameObject.transform.GetChild (0).gameObject;
    Debug.Log(textobj.name);
}

这是你所期望的目标吗?

然后,如果一切都已正确设置,但您想要添加-- TextMeshPro组件--如果它没有,您可以这样做

代码语言:javascript
复制
void Start () 
{
    textobj = this.gameObject.transform.GetChild (0).gameObject;
    mytext = textobj.GetComponent<TextMeshPro>();
    if(mytext == null)
    {
        mytext = textobj.AddComponent<TextMeshPro>();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2022-05-22 18:36:12

问题是,Text for TextMeshPro不是TextMeshPro对象,而是TMP_Text,所以如果您尝试这样做的话:

代码语言:javascript
复制
TMP_Text mytext;
void Start () {
    mytext = textobj.GetComponent<TMP_Text>();
}

现在,您应该在mytext对象中获得一个值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49172311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档