2017-01-25 3 views
1

Вот интересная проблема, на которую я застрял некоторое время и не мог понять. Я играю в SceneKit (используя быстрый). Всякий раз, когда я пытаюсь поместить объекты с динамическим физическим телом в иерархию узлов (например, добавить их как дочерний элемент в другой узел), физические тела отделяются от моделей (иногда модели просто улетают и т. Д.). Он всегда работает отлично, если я устанавливаю тела в статические. Кто-нибудь слышал об этом?Проблема с физикой SceneKit с динамическими объектами

Редактировать: Извините, если ранее было немного неясным. Чтобы добавить дополнительную информацию по этому вопросу:

Я создаю родительский узел несколько раз в сцене. В первый раз, когда он создан, все идеально, даже объекты с динамическими телами. Теперь, если я создаю другой экземпляр родительского узла дальше, например, по оси z, динамические физические тела выглядят точно в нужном месте, а 3d-модель не связана с физическим телом. Иногда модель находится в поле зрения, но нигде рядом с физическим телом или вообще не видно. Если это видно, как только мой основной игровой объект сталкивается с динамическим телом, физическое тело реагирует так, как ожидалось, но модель мгновенно исчезает. Итак, просто для уточнения, динамический физический организм ведет себя нормально, но моя импортированная модель, к которой принадлежит динамическое тело, - нет. Это единственный случай, когда мой объект находится в иерархии узлов.

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

Спасибо! Сэм

+0

Я думаю, что его сцена гравитации, которая движет вашими объектами, они двигаются на дно? –

+0

Как вы создаете эти узлы? – Confused

+0

@Confused Я создаю сцену (например, .dae или .scn), и я извлекаю свой корневой узел изнутри. Точно так же я видел, как все это делают. –

ответ

0

Существует различие между расположением SCNNode.представления и самим узлом. Механизм физики перенесет презентацию. Если вы устанавливаете свойства на SCNNode, такие как вращение, положение и т. Д., Он должен сбрасывать узел и презентацию в соответствии или вы можете вызвать сброс * (не перед документами прямо сейчас, чтобы получить правильное имя), чтобы сбросить его вручную, если это необходимо.

Как сказал Маго, есть, вероятно, гравитация, движущая ваши динамические тела. Вы можете отключить гравитацию от свойства физического механизма SceneView, или вы можете установить свойство физического тела, чтобы оно не подвергалось действию силы тяжести, и посмотреть, исправляет ли это это.

Учитывая ваше описание, я не уверен точно, что вы наблюдаете, поскольку физическое тело не видно только геометрии, прикрепленной к SCNNode. Возможно, немного больше деталей того, что вы наблюдаете, что приводит к выводу, что «физические тела отделены от моделей»?