EPortfolio docs
UECombatComponent
Crosshair 의 중앙을 기점으로 Trace 를 생성하고 충돌된 결과를 저장합니다.
Reference
UECombatComponent::OnFiring
void TraceUnderCrosshairs ( FHitResult& TraceHitResult );
Paramter
- TraceHitResult
충돌 결과
- GetViewportSize 를 통해 현재 게임의 ViewportSize 를 가져옵니다.
- 화면의 정중앙
ViewportSize.X / 2.f, ViewportSize.Y / 2.f을 CrossHair 의 위치로 저장합니다.- UGameplayStatics::DeprojectScreenToWorld
스크린 좌표를 월드 좌표로 변환
- bScreenToWorld
스크린 좌표를 월드 좌표로 변환 성공 여부가 true 라면
Start트레이스의 시작하여 나아갈 방향 | CrosshairWorldPosition + CrosshairWorldDirection- 만약 Player 가 존재한다면
Player 만큼의 거리를 시작 지점에 더합니다.
Start += CrosshairWorldDirection * (Player->GetActorLocation() - Start).Size()
- UKismetMathLibrary::RandomUnitVectorInConeInDegrees
원뿔 모양의 랜덤한 방향 벡터 생성- End 의 좌표를 설정합니다.
FCollisionQueryParams 의 설정으로 Player , EqquipedWeapon 을 충돌에서 제외하고 충돌이 존재한다면 물리 소재를 반환하도록 합니다.
- LineTraceSingleByChannel
트레이스 생성
- 생성한 트레이스에 충돌이 존재하지 않는다면 FHitResult 의 ImpactPoint 를 End 로 설정합니다.