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分配给变量?
还说统一引擎不能转换类型。
发布于 2018-03-08 13:08:21
当你做的时候
textobj.GetComponent<TextMeshPro>();统一将在对象TextMeshPro中查找textobj组件。根据您的代码,textobj是具有ClickBub脚本的对象的第一个子级。您应该首先检查编辑器中的第一个子组件是否有一个TextMeshPro组件。要确保访问所需的元素,可以尝试打印它们的名称:
void Start ()
{
textobj = this.gameObject.transform.GetChild (0).gameObject;
Debug.Log(textobj.name);
}这是你所期望的目标吗?
然后,如果一切都已正确设置,但您想要添加-- TextMeshPro组件--如果它没有,您可以这样做
void Start ()
{
textobj = this.gameObject.transform.GetChild (0).gameObject;
mytext = textobj.GetComponent<TextMeshPro>();
if(mytext == null)
{
mytext = textobj.AddComponent<TextMeshPro>();
}
}发布于 2022-05-22 18:36:12
问题是,Text for TextMeshPro不是TextMeshPro对象,而是TMP_Text,所以如果您尝试这样做的话:
TMP_Text mytext;
void Start () {
mytext = textobj.GetComponent<TMP_Text>();
}现在,您应该在mytext对象中获得一个值。
https://stackoverflow.com/questions/49172311
复制相似问题