Aderom писал(а):Saltant писал(а):Aderom писал(а):Saltant писал(а):При дестрое геймобжекта в апдейте, онКолижен может ваще не сработать как я понимаю.
А как дестрой произойдет без активации снижения здоровья в онКолижен?
Потому что это в 1 методе делается. Например в OnTriggerEnter снижаешь хп и сразу же если hp <= 0 то дестроишь.
Установил условие в onTrigger - без изменений
Рассказываю 1 раз как делается выстрел и попадание, записывай под диктовку:
1) Создаешь объект который будет пулей, на нем должен быть коллайдер (К слову, пулей может быть и партикл с коллизией и даже рейкаст если в игре пули летают со скоростью реальных пуль, но пока делай просто геймобжект пули).
2) Создаешь скрипт в котором размещаешь метод OnTriggerEnter, и вешаешь этот скрипт на пулю, так же в этом скрипте можешь указать демаг этой пули. В этом методе, ты будешь проверять с каким объектом пуля соприкасается. Тебе нужно на объект игрока, повесить например таг "Player" и в методе у пули OnTriggerEnter ты будешь проверять какой таг у объекта с которым соприкоснулась пулька с помощью CompareTag("Player"). Если пулька попала в игрока, ты берешь его скрипт (где у него хп описаны) через GetComponent() и делаешь простую операцию "хпИгрока - демагПули", далее проверяешь if(хпИгрока <= 0) то дестроишь игрока или же вызываешь анимацию смерти т.п
3) На игроке должен быть коллайдер чтоб весь этот механизм соответственно работал.
4) Так же в методе Start() скрипта пульки, можешь сразу начать её уничтожать с задержкой Destroy(gameObject, время), чтоб например она не оставалась вечно на сцене, а можешь создать пул этих пулек, но тебе, мой маленький друг пока рано об этом думать, сделай просто дестрой через N секунд.
После того как проведешь все эти манипуляции, ты получишь нормально работающий алгоритм просчета попаданий.