Я хочу достучаться до детей игрового объекта на OnTriggerEnter

#unity3d #triggers

Вопрос:

это код, который я получил для столкновения.что я должен сделать для триггера.означает, что при попытке использовать контакты я ничего не получил!

 void OnCollisionEnter(Collision collision) {
        Collider myCollider = collision.contacts[0].thisCollider;
        // Now do whatever you need with myCollider.
        // (If multiple colliders were involved in the collision, 
        // you can find them all by iterating through the contacts)
    }
 

Комментарии:

1. есть ли в вашем игровом объекте компонент коллайдера ? или коллизионная сетка ?

2. да , на нем есть circlecollidar2d , конечно, у родителя и его детей был circlecollidar, и я хочу уничтожить его детей, когда он коснется цели.

3. Если коллайдер прикреплен к детскому игровому объекту, OnCollisionEnter сработает на детях. Так что, может быть, вы могли бы сделать свою логику в детском игровом объекте.

Ответ №1:

Что я понял, так это то, что вы хотите получить доступ к дочернему объекту столкнувшегося игрового объекта. Вы можете получить других детей, указав индексный номер дочернего игрового объекта, например 1,2,3, в функцию getChild.

 void OnCollisionEnter(Collision collision) {
    
GameObject child = collision.gameobject.transform.GetChild(0).gameObject;

}
 

Для нескольких коллайдеров обратитесь к этой теме

Ответ №2:

Триггер (коллайдеры с isTrigger включенным) не вызовет OnCollisionEnter , но только OnTriggerEnter(Collider) .

Смотрите также Коллайдеры -> Матрица действий при столкновении>

=> для триггеров вы не получите никакой информации о контактных точках.

Комментарии:

1. конечно, я хочу уничтожить ребенка игрового объекта, когда он касается цели с помощью OnTriggerEnter