2015-05-15 3 views
0

У меня есть объект dae с некоторыми костями. Я хочу, чтобы обнаружить кран на определенной кости с помощью метода:Обнаружение касания на дочерних костях

- (NSArray *)hitTest:(CGPoint)thePoint options:(NSDictionary *)options; 

Этот метод возвращает только родительский узел, где бы я нажимаю на объекте. Как я могу справиться с этим?

Заранее спасибо.

+0

Вы говорите об узле в контексте «SCNSkinner»? Если такие кости никогда не будут возвращены в результате теста на попадание, так как у них нет геометрии. Кости не имеют толщины, поэтому их нельзя ударить, только геометрия (фактические треугольники). – mnuages

+0

Хорошо, вот почему. Могу ли я догадаться об ударе с помощью сравнения позиций? Можно ли обмануть его? – user2724028

+0

или можно ли преобразовать позицию узлов в 2d и проверить прямоугольник для события click? – user2724028

ответ

0

Это невозможно, так как кости не имеют геометрии для удара.

Один трюк, который вы можете использовать, - это создание простой невидимой коробки на каждой кости. Объедините эти коробки и примените к ней скольку. Затем проверьте тестовый тест geometryIndex.

Другим способом было бы создать очень простую сетку в вашем 3D-программном обеспечении, которое следует за костями без каких-либо подробностей, сделав их невидимыми и привяжите их к скелету. Обратите внимание на положение каждого многоугольника и проверьте против теста faceIndex.