如何在碰撞时获取父标签?

Nov*_*ikk 4 c# game-development unity-game-engine

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

This is my hierarchy:
A - > PARENT
-B -> PARENT CHILD
--C -> Collider Gameobject
Run Code Online (Sandbox Code Playgroud)

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

感谢您的时间 :)

Dar*_*ane 5

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

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

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

private void OnCollisionEnter(Collision collision)
{
    if (collision.transform.root.CompareTag("EnterTagToCompareHere"))
    {
        // Tag on the root object matches
    }
}
Run Code Online (Sandbox Code Playgroud)