4

我在一项简单的任务上遇到了大麻烦。我想在检测到碰撞时检查父游戏对象的标签是否等于我的值。因为我只想在与那个障碍物碰撞时添加特殊效果。

This is my hierarchy:
A - > PARENT
-B -> PARENT CHILD
--C -> Collider Gameobject

所以我想当我的玩家与 C 对象碰撞时检查 A 中的标签是否等于我的值,但我不知道如何获取 PARENT A 游戏对象的标签。

感谢您的时间 :)

4

2 回答 2

5

@Sean Carey 的答案在您只想在层次结构中上一层时非常有效,但在您的特定情况下会失败,因为您似乎正在寻找检查 'root' 的标签Transform

幸运的是,Unity 为我们提供了一个属性来引用任何给定对象的根。Transform

以下是您如何使用它的示例,但请考虑对其进行更改以满足您的特定需求:

private void OnCollisionEnter(Collision collision)
{
    if (collision.transform.root.CompareTag("EnterTagToCompareHere"))
    {
        // Tag on the root object matches
    }
}
于 2019-07-06T03:14:06.033 回答
2
private void OnCollisionEnter2D(Collision2D other)
{
    if (other.transform.parent.CompareTag("Enemy"))
    {
        //Do stuff
    }
}
于 2019-07-06T01:03:47.333 回答