Для CollisionScript создайте скрипт для плеера.
Убрать функцию запуска и обновления. Вместо этого добавьте:
недействительным OnCollisionEnter
Все, что указано в фигурных скобках, происходит при столкновении двух объектов. Unity нужна информация о том, какой объект поражен. Для этого используйте круглые скобки. Введите «Столкновение» и сообщите Unity, что информация о столкновении поступает. Затем дайте ему имя.
Теперь вы даете информацию о CollisionInfo. Знак "." Означает, что теперь следует уточнение информации. Теперь добавьте коллайдер и укажите "."
Теперь вы сформулируете условие Единства.
Теги могут использоваться для улучшения спецификации. Имена могут вызвать проблемы, поскольку они могут измениться, и в противном случае код больше не будет работать. Добавьте тег и назначьте его объектам, которые могут столкнуться с игроком.
Исправьте это в коде и замените имя тегом.
Поскольку игрок просто летает после столкновения, движение игрока должно быть отключено. Это тоже делается через скрипт. Для этого добавьте переменную. Теперь перетащите скрипт PlayerMovement в новый слот.
Готовый скрипт выглядит так:
Если игрок сталкивается с чем-то, на что был назначен тег Препятствие, он, по сути, заканчивает игру и больше не может управлять своим персонажем.
Чтобы оптимизировать физические реакции игрока и объектов, выберите параметр «Непрерывный» в разделе «Обнаружение столкновений» в Unity.
Кроме того, выберите Edit -> Project Settings -> Time и уменьшите фиксированные временные шаги до 0.01. Unity чаще обновляет физику в игре.
Эти настройки оптимизируют столкновения.
Первоначально опубликовано 2020-06-05 16:31:00.