#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