Как получить тег родителя при столкновении? - PullRequest
3 голосов
/ 06 июля 2019

У меня большие проблемы с одной простой задачей. Я хочу, чтобы при обнаружении столкновения я проверял, равен ли тег родительского игрового объекта моему значению. Потому что я хочу добавить спецэффект только при столкновении с этим препятствием.

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

Поэтому я хочу, чтобы, когда мой игрок сталкивался с объектом C, проверял, равен ли тег A моему значению, но я не знаю, как получить тег игрового объекта PARENT A.

Спасибо, что уделили время:)

Ответы [ 2 ]

3 голосов
/ 06 июля 2019

@ Ответ Шона Кэри работает отлично, когда вы хотите подняться только на один уровень в иерархии, но не получится в вашем конкретном случае, поскольку вы, похоже, хотите проверить тег «root» Transform.

К счастью, Unity предоставил нам свойство для ссылки на корень из любого данного Transform объекта.

Вот пример того, как вы можете использовать его, но подумайте о том, чтобы изменить его в соответствии с вашими конкретными потребностями:

private void OnCollisionEnter(Collision collision)
{
    if (collision.transform.root.CompareTag("EnterTagToCompareHere"))
    {
        // Tag on the root object matches
    }
}
1 голос
/ 06 июля 2019
private void OnCollisionEnter2D(Collision2D other)
{
    if (other.transform.parent.CompareTag("Enemy"))
    {
        //Do stuff
    }
}
...