Не удается заставить OnCollisionEnter работать с Mesh Collider при использовании Leap Motion.

Я пытаюсь использовать прыжок для взаимодействия с несколькими другими игровыми объектами. На очень простом уровне у меня есть куб, с которым мне нужно взаимодействовать. Для этого я написал скрипт -

using UnityEngine;
using System.Collections;

public class DoorDetector : MonoBehaviour {

    void OnCollisionEnter(Collision other)
    {
        Debug.Log("Hello");
    }
}

В идеале это должно отображать приветствие в консоли при столкновении, но это не так. У меня есть сетчатый коллайдер, примененный к телу, а для рук я использую префабы RigidRoundHand. Я попытался применить твердое тело (на случай, если префабы этого еще не сделали), но это тоже не сработало.


person Zeokav    schedule 13.12.2016    source источник
comment
Попробуйте Box Collider вместо Mesh Collider и дайте мне знать, если это сработает.   -  person Programmer    schedule 13.12.2016
comment
Вы установили непрерывное обнаружение столкновений в твердом теле? Это требует больше ресурсов ЦП, но лучше обнаруживает быстро движущиеся столкновения.   -  person Martin    schedule 13.12.2016
comment
@Programmer Я сделал именно это после того, как опубликовал вопрос, и это сработало. Есть идеи, почему меш-коллайдер дает сбои?   -  person Zeokav    schedule 13.12.2016
comment
@Zeokav Взгляните на мой ответ.   -  person Programmer    schedule 14.12.2016


Ответы (2)


Вы используете Mesh Collider, поэтому необходимо включить Convex для Mesh Collider.

введите здесь описание изображения

Если это не решит вашу проблему, просто используйте Box Collider, как я упоминал в разделе комментариев.

person Programmer    schedule 13.12.2016
comment
Я просто решил использовать коробочный коллайдер. Спасибо! - person Zeokav; 14.12.2016
comment
@Zeokav Да, я бы тоже так сделал, потому что Box Collider эффективнее. Просто хотел показать тем, у кого есть Mesh Collider, как решить эту проблему. - person Programmer; 14.12.2016

Будет работать, если поставить RigidBody на тот куб, где находится этот скрипт. По крайней мере один из сталкивающихся объектов должен иметь RigidBody. Также отключите IsTrigger в Colliders of Cube и всех интерактивных объектах.

person Universus    schedule 13.12.2016