1. 개요
캐릭터가 바라보는 방향으로
총알이 발사될 수 있도록 구현하였다.
2. 아이디어

- 캐릭터가 바라보는 전방 벡터를 구한다.
- 전방 벡터에서 특정 거리(25M)만큼 떨어진 타겟 벡터를 구한다.
- 타겟 백터에서 총구의 위치를 빼고 정규화를 통해 벡터의 방향을 구한다.
3. 구현
/* Charcter.cpp */
// 캐릭터의 눈 높이를 설정한다.
BaseEyeHeight = 200.0f;
FVector CameraLocation;
FRotator CameraRotation;
GetInstigator()->GetActorEyesViewPoint(CameraLocation, CameraRotation);
FVector TraceStart = CameraLocation;
// 전방 벡터 방향으로 특정 거리를 구한다.
FVector TraceEnd = TraceStart + (CameraRotation.Vector() * TargetDistance);
// 총알의 방향을 구한다.
TargetDirection = (TraceEnd - GetActorLocation()).GetSafeNormal();
// 계산한 방향으로 총알의 선형 속도를 설정한다.
BulletMeshComp->SetPhysicsLinearVelocity(TargetDirection * Speed);
BulletMeshComp->SetMassOverrideInKg(NAME_None, 2.f);
BulletMeshComp->SetLinearDamping(0.5f);
BulletMeshComp->SetAngularDamping(0.5f);
'Unrael > Implement' 카테고리의 다른 글
| [UE/Implement] FPS & TPS 시점 전환 (0) | 2025.03.12 |
|---|---|
| [UE/Implement] 피격 이펙트 구현 (0) | 2025.02.26 |
| [UE/Implement] 탄창 소모 연출 (1) | 2025.02.21 |
| [UE/Implement] 미니 프로젝트 회고 (0) | 2025.02.13 |
| [UE/Basic] 치트 매니저 (Cheat Manager) (0) | 2025.02.12 |