onTriggerEnter2D срабатывает только один раз, если объект не двигается - PullRequest
0 голосов
/ 20 февраля 2019

Итак, я создаю 2D-игру, подобную метроидвании.


У меня есть игрок, с:


  • hardbody2d
  • полигонный коллайдер, не триггерный
  • коробочный коллайдер, триггерный, включен = ложный, этот является коллайдером атаки

А когда я нажимаю клавишу атаки,Я установил значение true в течение примерно 0,5 секунд, а затем вернул значение false.

Я не раз наблюдал за флажком, кроме коллайдера, и уверен, что этот набор активирован, и значение false работает правильно..


Затем я создаю еще один целевой объект с:


  • полигональным коллайдером, без триггера

Когда у объекта есть стрельба onTriggerEnter2D, я регистрирую его.


Поэтому в идеале я буду наносить некоторый урон по цели, когда срабатывает onTriggerEnter2D.


Однако, если я позволюигрок стоит на месте и несколько раз поражает цель, onTriggerEnter2D сработает только один раз, мне нужно переместить игрокабит, и нажмите цель, чтобы снова запустить функцию.

Я также вошел в систему, когда onTriggerExit2D срабатывает, так что я уверен, что она выходит.он просто больше не входит.


Другое дело, что если я быстро атакую ​​и поражаю цель, функция срабатывает столько раз, сколько я ее поражаю.

, ноесли я остановлюсь некоторое время (например, на 1 секунду?) и снова нажму, функция не сработает.мне все еще нужно заставить игрока идти немного, чтобы снова запустить функцию.


эта ситуация происходит только когда:

(все коллайдеры на целевом объекте не являются триггерами)ИЛИ (к цели прикреплен жесткое тело2D)

Если я уберу жесткое тело2D и добавлю один коллайдер isTrigger на цель, этого не произойдет.


Кто-нибудь может мне помочь с этим?Я понятия не имею, что вызывает это.

Спасибо!

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