у персонажа триггерятся ивенты event point damage и event any damage
Как вы разграничиваете эти два события, если они вам оба нужны? С помощью различных DamageType?
Так название эвентов кабы сами за себя говорят.
Ага, и что делать? Поинт вызывает и то и то
Так и должен и то и то вызывать
Ну да, я о том же...
Смотри... Тут логика какая.... Нужен просто демаг используешь Ани демаг, если планируешь разграничение то используешь конкретный допустим поинт и т. Д.
Да, конечно! Но если нужен поинт, то вызывается еще и эни :) Если подробнее, то у меня от пули урон - Point, а от дебаффа какого-нибудь(например, подожгли тебя), я использую Any. Неужели вместо Any нужно везде использовать Point? Тут вопрос скорее про архитектуру :)
Не используйте в данной ситуации any
Просто эпики напихали дофига всего, и многое пересекается))))
Видимо, так и есть :) А то и правда, как-то нелогично выходит
Все логично))) просто не всегда нужно разграничение по типу демага. Есть ситуации когда любой демаг будет одинаковый, тогда берём просто Ани демаг.
Как вариант, для повреждений от заклинаний и огня можно использовать RadialDamage. Вообще, по задумке авторов движка, для специфических повреждений нужно определять свои DamageTypeClass-ы и FDamageEvent-ы: https://www.unrealengine.com/en-US/blog/damage-in-ue4
Спасибо! Да, так и сделал, кстати.
Ещё внесу немного ясности, вверху писали про кастомные FDamageEvent для различных типов урона и это правильная классическая идея, но довольно неудачная реализация в самом движке. В то время, как через блюпринты ты ещё можешь создавать и передавать кастомные DamageType (повреждение от огня, лазеры, пули, и т.д и.т.п.) то сами FDamageEvent сейчас их 2 - PointDamage and RadialDamage) - это плюсовый хардкод, обернутый в статичные функции, т.е. те самые ApplySomeTypeDamage/ReceiveSomeTypeDamage, и все это крайне некрасиво/неудобно расширяется. Ещё, кстати, огромный минус этого решения в том, что Apply...Damage не возвращают никаких внятных значений, кроме була, как правило этого недостаточно. Таким образом стандартная система в принципе подходит для чего-то очень простого, для прототипов и тестов. Но для более серьезных задач лучше написать что-то своё, вполне даже просто на блюпринтах, если проект не плюсовый.
Спасибо большое! Отличный ответ, который расставил все на свои места
Обсуждают сегодня