C# 如何检查OnTiggerEnter中对象上的文本
我有一个问题,我创建了一个游戏,我需要收集一个气球,并检查我附加在上面的文本编号:C# 如何检查OnTiggerEnter中对象上的文本,c#,unity3d,collider,C#,Unity3d,Collider,我有一个问题,我创建了一个游戏,我需要收集一个气球,并检查我附加在上面的文本编号: 这很简单。例如,在other对象的子对象中有一个TextMeshPro。在这种情况下,有两种方法可以获取子对象 我将在答案的底部添加参考链接 other.transform.Find() other.transform.GetChild() 1.other.transform.Find() 使用transform.find()方法,它将遍历父对象的子对象的所有游戏对象。在您的情况下,此方法将遍历其他对象的所有子
这很简单。例如,在
other
对象的子对象中有一个TextMeshPro
。在这种情况下,有两种方法可以获取子对象
我将在答案的底部添加参考链接
transform.find()
方法,它将遍历父对象的子对象的所有游戏对象。在您的情况下,此方法将遍历其他
对象的所有子对象,一旦找到与名称匹配的对象,它将返回该对象
这里有一个例子:
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.Find("Text (TMP) (1)").GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.GetChild(0).GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
公共无效对撞机(对撞机其他)
{
如果(other.gameObject.tag==“气球”)
{
TextMeshPro tmp=other.transform.Find(“Text(tmp)(1)”).GetComponent();
如果(tmp.text==“您喜欢的文本”)
{
Log(“做你想做的事”);
}
}
}
2.other.transform.GetChild()
此方法将直接从您输入的索引返回子级。这种方法是一种有效的方法
以下是示例:
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.Find("Text (TMP) (1)").GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.GetChild(0).GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
公共无效对撞机(对撞机其他)
{
如果(other.gameObject.tag==“气球”)
{
TextMeshPro tmp=other.transform.GetChild(0.GetComponent();
如果(tmp.text==“您喜欢的文本”)
{
Log(“做你想做的事”);
}
}
}
参考文献:
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.Find("Text (TMP) (1)").GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
public void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Ballon")
{
TextMeshPro tmp = other.transform.GetChild(0).GetComponent<TextMeshPro>();
if(tmp.text == "text of your liking")
{
Debug.Log("Do what you want");
}
}
}
1.2.只需获取other.gameObject的文本组件,然后访问文本变量即可。然后将这个字符串转换成整数。你能告诉我怎么做吗?我现在正在工作,两小时后我会给你解释,好吗?当然没问题,谢谢不要谢,回答别人的问题你也可以简单地使用
getComponentChildren()
@derHugo是的,没错,但如果存在多个TextMeshPro
,可能会造成混乱。