Быстро движущийся объект, проходящий через другие объекты - PullRequest
1 голос
/ 26 апреля 2011

Я довольно новичок в Unity и делаю небольшой пример. На самом деле у меня есть куб, который перемещается с помощью клавиш со стрелками. Теперь у меня есть стены на дороге, и я хочу, чтобы мой объект ударил в стену, но он проходит через стену.

Я также использовал этот код, но без результата:

http://www.unifycommunity.com/wiki/index.php?title=DontGoThroughThings

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Если вы делаете что-то вроде:

transform.velocity.x += speed * Time.deltaTime;

Это не будет работать с коллизиями, потому что вы на самом деле ни с чем не сталкиваетесь, вы просто телепортируетесь на фиксированную величину каждый кадр. Это заставляет вас фактически телепортироваться ВНУТРИ объекта.

1 голос
/ 27 апреля 2011

Общая идея состоит в том, чтобы отслеживать последнюю позицию вашего объекта (ов), а затем, когда они перемещаются, направить луч из текущей позиции в последнюю позицию. Проверьте луч на наличие столкновений, и если они есть, вы прошли через объект.

Если вы прошли через другой объект, установите текущий объект в положение, указанное в результате столкновения. Следующий кадр вызовет события столкновения.

Ссылка, которую вы предоставили, действительно делает это.

...