a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3b645daef9d5


자세히 보시면 저 초록색 만큼이 spheretrace인데 정작 충돌판정은 하나밖에 안일어 났습니다. 위에 데미지 50 뜬게 하나에요.


이게 한개만 충돌되는게 아니고 두세개씩 될때도 있는데 문제는 어찌됐건 저 트레이스 안에 들어가도 충돌이 안될때가 많다는 겁니다. 


FVector StartLoc = GetMesh()->GetSocketLocation(TEXT("SkillQ_Start_Socket"));

FVector TargetLoc = GetMesh()->GetSocketLocation(TEXT("SkillQ_End_Socket"));


TArray<AActor*> IngoreActors;

IngoreActors.Add(this);


TArray<FHitResult> HitRetArray;


bool isHit = UKismetSystemLibrary::SphereTraceMultiByProfile(GetWorld(), StartLoc, TargetLoc, 110.f, TEXT("BlockAll"), false, IngoreActors, EDrawDebugTrace::Type::ForDuration, HitRetArray, true);

if (isHit)

{

for (FHitResult Hit : HitRetArray)

{

if (AActor* Actor = Hit.Actor.Get())

{

if (Actor->ActorHasTag("Enemy")) {

float Dmg;

CharacterStat->SetMP(CharacterStat->GetMP() + 2.0f); 

Dmg = CharacterStat->GetAttack(); 

SetCharacterLifesteal(Dmg * CharacterStat->GetLifesteal()); // 가한 데미지만큼 체력회복

UGameplayStatics::ApplyDamage(Actor, Dmg, nullptr, this, NULL);

UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), HitEffect, Actor->GetActorLocation());

}

}

}

}


트레이스가 생성되는 함수입니다.


이게 애니메이션 노티파이를 이용해서 애니메이션이 재생되면 애니메이션 노티파이로 저 트레이스 함수가 실행되는건데 판정이 멋대로네요...


중요한건 저 코드와 똑같은 다른 스킬은 씹히는거 하나 없이 멀쩡하게 다 판정이 됩니다. 



a16711aa372a76b660b8f68b12d21a1dd48ada34c88e 저 위에 쓴 코드랑 범위만 다르지 내용자체는 똑같습니다. 이건 잘만되네요...


미치것습니다. 저런 원통모양? 저게 뭐 문제인지 뭔지 같은 코드여도 범위,크기에 따라서 막 달라지네요...