Я написал контроллер игрока для своей игры, который использует твердое тело, чтобы дать игроку физику. Я установил как реституцию, так и трение на 0, а массу на 80. Моя местность обладает точно такими же свойствами, только масса также равна 0.
Каждый раз, когда игрок падает с большой высоты, он несколько раз подпрыгивает на поверхности местности. Это не совсем то, как я хочу, чтобы мой игрок реагировал. Есть ли способ предотвратить такое поведение?
Вот видео, иллюстрирующее мою проблему. Это немного запаздывает, потому что я записал это, используя QuickTime, но это должно понять суть.
Вы устанавливаете реституцию 0 и ожидаете, что она не отскочит. Но этот маленький прыжок (по сравнению с высотой, с которой ваш войлок) проходит через решатель, когда ваше тело сталкивается с землей. Солвер применяет определенный импульс, чтобы разрешить столкновение и остановить движение. Импульс немного больше необходимого, чтобы избежать ситуации, когда столкновение не разрешено.
Вы можете рассмотреть возможность реализации другого моделирования, когда ваше тело кинематическое, а не динамическое.
Вам придется обрабатывать столкновения и движения вручную, но вы будете иметь полный контроль над тем, как вы хотите, чтобы ваше тело двигалось.
Других решений пока нет …