Итак, я создаю 2D-игру, подобную метроидвании.
У меня есть игрок, с:
- hardbody2d
- полигонный коллайдер, не триггерный
- коробочный коллайдер, триггерный, включен = ложный, этот является коллайдером атаки
А когда я нажимаю клавишу атаки,Я установил значение true в течение примерно 0,5 секунд, а затем вернул значение false.
Я не раз наблюдал за флажком, кроме коллайдера, и уверен, что этот набор активирован, и значение false работает правильно..
Затем я создаю еще один целевой объект с:
- полигональным коллайдером, без триггера
Когда у объекта есть стрельба onTriggerEnter2D, я регистрирую его.
Поэтому в идеале я буду наносить некоторый урон по цели, когда срабатывает onTriggerEnter2D.
Однако, если я позволюигрок стоит на месте и несколько раз поражает цель, onTriggerEnter2D сработает только один раз, мне нужно переместить игрокабит, и нажмите цель, чтобы снова запустить функцию.
Я также вошел в систему, когда onTriggerExit2D срабатывает, так что я уверен, что она выходит.он просто больше не входит.
Другое дело, что если я быстро атакую и поражаю цель, функция срабатывает столько раз, сколько я ее поражаю.
, ноесли я остановлюсь некоторое время (например, на 1 секунду?) и снова нажму, функция не сработает.мне все еще нужно заставить игрока идти немного, чтобы снова запустить функцию.
эта ситуация происходит только когда:
(все коллайдеры на целевом объекте не являются триггерами)ИЛИ (к цели прикреплен жесткое тело2D)
Если я уберу жесткое тело2D и добавлю один коллайдер isTrigger на цель, этого не произойдет.
Кто-нибудь может мне помочь с этим?Я понятия не имею, что вызывает это.
Спасибо!