我在一项简单的任务上遇到了大麻烦。我想在检测到碰撞时检查父游戏对象的标签是否等于我的值。因为我只想在与那个障碍物碰撞时添加特殊效果。
This is my hierarchy:
A - > PARENT
-B -> PARENT CHILD
--C -> Collider Gameobject
所以我想当我的玩家与 C 对象碰撞时检查 A 中的标签是否等于我的值,但我不知道如何获取 PARENT A 游戏对象的标签。
感谢您的时间 :)
我在一项简单的任务上遇到了大麻烦。我想在检测到碰撞时检查父游戏对象的标签是否等于我的值。因为我只想在与那个障碍物碰撞时添加特殊效果。
This is my hierarchy:
A - > PARENT
-B -> PARENT CHILD
--C -> Collider Gameobject
所以我想当我的玩家与 C 对象碰撞时检查 A 中的标签是否等于我的值,但我不知道如何获取 PARENT A 游戏对象的标签。
感谢您的时间 :)
@Sean Carey 的答案在您只想在层次结构中上一层时非常有效,但在您的特定情况下会失败,因为您似乎正在寻找检查 'root' 的标签Transform。
幸运的是,Unity 为我们提供了一个属性来引用任何给定对象的根。Transform
以下是您如何使用它的示例,但请考虑对其进行更改以满足您的特定需求:
private void OnCollisionEnter(Collision collision)
{
if (collision.transform.root.CompareTag("EnterTagToCompareHere"))
{
// Tag on the root object matches
}
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.transform.parent.CompareTag("Enemy"))
{
//Do stuff
}
}