<aside>
📌 Этот воркфлоу описывает процесс интеграции и настройки компонента вашего кастомного UShootingComponent в ваш класс от начала до конца.
</aside>
<aside>
⚠️ Назначение
ShootingComponent компонент, отвечающий за логику стрельбы в игровом мире. Он позволяет акторам (например, персонажам, оружию) генерировать выстрелы, управлять ими и обрабатывать их последствия.
</aside>
<aside> ✏️ Реализация
UShootingComponent (например, UMyShootingComponent).StartFire(): Позволяет выполнить дополнительную логику когда стрельба была успешно запущена, но логика выстрела еще не была произведена.FinishFire(): Позволяет выполнить дополнительную логику когда стрельба была завершена.Fire(): Позволяет выполнить дополнительную логика выстрела.CanFire(): Определите может ли компонент сгенерировать выстрел.GetFireLocation() : Определите мировую позицию откуда будет произведен спавн выстрела.GetFireDirection(): Определите направление выстрела.CalculateSpread(): Позволяет написать кастомную логику определнеия разброса.HandleCalculateDamage(): Позволяет написать кастомную логику расчета урона.HandleApplyDamage(): Позволяет написать кастомную логику нанесения урона.FinishFire().
</aside><aside> ❗ Важные моменты
SetMesh() указать SkeletalMeshСomponent оружия. И укажите название сокета ствола в свойство MuzzleSocketName.AvailableFireModes задайте доступные режимы стрельбы и в свойстве FireMode установите текущий.UShootingComponent через функцию SetProjectilePoolManager() ,был задан компонент ObjectPoolComponent содержащий заранее подготовленый пулл снарядов. Так-же не забудьте указать какой класс снарядов будет использоваться в параметре ProjectileActorClass .</aside>
<aside> Создайте новый Blueprint Actor
<aside>
Blueprint Class.Actor в качестве родительского класса (или другой подходящий класс, если требуется специфическая функциональность).BP_MyShooter.
</aside>Добавление компонента ShootingComponent
<aside>
BP_MyShooter.Components нажмите Add Component.MyShootingComponent.
</aside>Настройте свойства компонента
<aside>
ShootingComponent в панели Components.Details настройте свойства компонента:
AvailableFireModes: доступные режимы стрельбы.FireMode: текущий режим стрельбы.FireType: текущий тип стрельбы (лайн-трейс или проджектайл).FireRate: скорострельность.Ammo: информация о патронах.SpreadConfig: конфиг разброса.DamageConfig: конфиг урона.ShootingComponent).
</aside>Добавьте визуальное представление
<aside>
Skeletal Mesh Component оружия вашему стрелку.SetMesh().
</aside></aside>
<aside> 🔥
Запуск стрельбы
Запуск стрельбы активируется с помощью функции StartFire(), функция автоматически проверяет условия для стрельбы, и если они соответсвуют то запускает дальнейший процесс воспроизведения выстрела.
</aside>
<aside> 🎯
Обработка результата выстрела
Вы можете обработать результат попадания выстрела несколькими способами, первый способ подходит как для типа стрельбы лайнтрейсом и проджектайлом, это подписатся на делегат OnTargetHit() компонента, и второй способ использовать тоже делегат либо евент OnFire() в котором через функцию GetLastHitResult() можно получить последний результат трасировки, метод больше подходит только для типа стрельбы лайнтрейсом.
</aside>
<aside>
Медиа








</aside>

<aside> ❗ Следуя этим шагам, вы сможете создавать и настраивать логику стрельбы для любого актора-стрелка отвечающему вашим запросам.
</aside>