如何在OnTriggerEnter中检查在对象上找到的文本

问题描述

我有一个问题,我创建了一个游戏,我需要收集一个气球,并检查附在上面的文字数: Example

  public void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Ballon")
        {
       //Now I want to check the text//
        }
     }

解决方法

这很简单。作为示例,您在SELECT * FROM mst_goods_barcode b JOIN mst_goods g ON b.goods_id = g.id JOIN trx_agent_stock s ON s.goods_id = g.id WHERE s.agent_id = 1 AND b.barcode = "BL0213" OR g.name LIKE "%tea%" 对象的子对象中有一个TextMeshPro。现在,在这种情况下,您可以通过两种方式获取子对象。

我将在答案的底部添加参考链接。

  1. other.transform.Find();
  2. other.transform.GetChild();

1。 other.transform.Find()

使用other方法将遍历作为父对象的子对象的所有游戏对象(在您的情况下),该方法将尽快遍历transform.find()对象的所有子对象。找到与名称匹配的对象,它将返回该对象。

以下是示例:

other

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");
         }
    }
 }

参考:

1。Transform.Find()
2。Transform.GetChild()