Как я могу заставить два объекта слипаться при столкновении? (единица 3d) C# - PullRequest
0 голосов
/ 10 июля 2020

В игре, которую я создаю, я пытаюсь заставить два игровых объекта слипаться при столкновении. Я пробовал сделать первый дочерним по отношению к другому, чтобы, когда родитель двигается, ребенок двигается вместе с ним. Но когда я это делаю, ребенок телепортируется, и его масштаб изменяется (я знаю, что это как-то связано с World-location / Local-location и World-scale / Local-scale. Положение и масштаб ребенка меняются относительно положения родителя. и масштаб). Но я не знаю, как это решить. Если бы кто-нибудь мог помочь, я был бы признателен. (это не обязательно должно быть связано с родителями и детьми, мне просто нужно чистое исправление)

1 Ответ

1 голос
/ 10 июля 2020

Повторное родительство здесь является решением по умолчанию. Если вы испытываете неожиданное поведение с этим, это обычно признак того, что вы используете неравномерный масштаб где-то в любой из родительских цепочек. Лучшая практика - никогда не использовать шкалы с разными коэффициентами x, y, z. Если вам нужно изменить форму коробки, убедитесь, что вы масштабируете только коробку, и у вас есть фиктивный родительский элемент, к которому вы переродите свой «прикрепленный» объект. Наличие неоднородного масштаба где-то наверху в цепочке (то есть повторное родительство объекта, который неравномерно масштабируется) будет искажать пары вращения / масштабирования вниз по цепочке, и, хотя это может дать желаемый эффект, когда задействован только один объект, он может укусить

Альтернатива, если это не помогает решить вашу проблему по какой-либо причине, в более новых версиях Unity есть компонент под названием ParentConstraint, который должен позволить вам достичь того же эффекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...