/
Azarel
/
Metro2
Обзор
Документация
Войти
/
Azarel
/
Metro2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Source/GameJam/Private/EnemyAttack.cpp
54 строки
1 KB
arseniy.mazurenko.03@gmail.com
Fix
29 сен 2024, 14:10
29 сен 2024, 14:10
7176f0a
Код
Авторство
О чём код?
// Fill out your copyright notice in the Description page of Project Settings. #include "EnemyAttack.h" #include "Components/SphereComponent.h" #include "DrawDebugHelpers.h" #include "Kismet/GameplayStatics.h" AEnemyAttack::AEnemyAttack() { PrimaryActorTick.bCanEverTick = false; CollisionComponent = CreateDefaultSubobject<USphereComponent>("SphereComponent"); CollisionComponent->InitSphereRadius(5.0f); CollisionComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly); CollisionComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block); SetRootComponent(CollisionComponent); } void AEnemyAttack::BeginPlay() { Super::BeginPlay(); check(CollisionComponent); //CollisionComponent->OnComponentActivated; CollisionComponent->OnComponentHit.AddDynamic(this, &AEnemyAttack::OnAttackHit); } void AEnemyAttack::Tick(float DeltaTime) { Super::Tick(DeltaTime); } void AEnemyAttack::OnAttackHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) { if (!GetWorld()) return; UGameplayStatics::ApplyRadialDamage( GetWorld(), DamageAmount, GetActorLocation(), DamageRadius, UDamageType::StaticClass(), { GetOwner() }, this, nullptr, DoFullDamage ); DrawDebugSphere(GetWorld(), GetActorLocation(), DamageRadius, 24, FColor::Red, false, 5.0f); }