Доброго времени суток! У меня очень похожая ситуация с автором данной темы, но вышеперечисленные методы не помогли.
Игра FPS под Android. Управление реализовано через джойстик и тачпад. Персонаж собран из пустышки (Empty), в которую помещена камера.
Персонаж проходит сквозь стены как Каспер. Пробовал добавлять коллизию на пустышку, пробовал на камеру, добавлял внутрь пустышки 3D капсулу с коллизией (чекбоксы на тригер везде отключены), менял у камеры параметр Clipping Planes.
Если на камеру добавить риджитбади - она проваливается сквозь пол. Если отключить в ней гравити (положение персонажа на уровне не меняется по оси Y) - все равно проходит сквозь стены.
Если риджитбади добавить на пустышку - при движении или повороте камеры персонаж улетает в "космос" так быстро, что даже Илон Маск обзавидуется.
Возможно проблема в данном фрагменте кода? (не программист - не силён)
Код
private void CharacterMove()
{
transform.Translate(joystick.Horizontal() * Time.deltaTime * speedMove, 0f, 0f);
transform.Translate(0f, 0f, joystick.Vertical() * Time.deltaTime * speedMove);
}
Подсобите гениальным решением =)
P.S. Проводил тесты коллизии стен, путем опускания на них шара с риджитбади - работает корректно. По этому сделал вывод что причина кроется в самом персонажеДобавлено (14 Октября 2019, 00:06)
---------------------------------------------
Добавил в скрипт реализацию Рейкаста и переработал метод перемещения персонажа - все заработало