일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- winapi
- Unreal Engine5
- C++
- UnrealEngine5
- 프로그래머스
- algorithm
- 1563
- 팰린드롬 만들기
- 언리얼엔진5
- 2294
- GeeksForGeeks
- DeferredRendering
- 줄 세우기
- UE5
- RVO
- NRVO
- softeer
- Programmers
- Frustum
- IFileDialog
- directx
- DirectX11
- baekjoon
- 오블완
- UnrealEngine4
- RootMotion
- 백준
- C
- const
- 티스토리챌린지
- Today
- Total
Game Develop
라인트레이스, 파티클 재생 본문
UPROPERTY(EditAnywhere, Category = BulletEffect)
class UParticleSystem* mBulletEffectFacctory; // 파티클을 담을 수 있는 객체. BP창에서 파티클오브젝트 셋팅.(BP창이든 C++로 해놨든.
아래 코드는 라인트레이스에 충돌한 물체에 파티클을 렌더하는 코드.
TPS프로젝트에서 스나이퍼총일 때 실행시키는 코드다.
FVector startPos = mTPSCamComp->GetComponentLocation(); // 라인트레이스 시작위치 (카메라위치값)
FVector endPos = mTPSCamComp->GetComponentLocation() + mTPSCamComp->GetForwardVector() * 5000;
// 최대 카메라 전방(ForwardVector) 직선 5000cm까지 충돌체크.
FHitResult hitInfo; // 라인트레이스의 충돌정보를 담을 변수.
FCollisionQueryParams params; // 충돌 옵션 설정 변수
params.AddIgnoredActor(this); // 자기 자신은 충돌에서 제외.
bool bHit = GetWorld()->LineTraceSingleByChannel(hitInfo, startPos, endPos, ECC_Visibility, params); // 충돌 시 true 리턴.
if (bHit) // 충돌이 발생하면
{
FTransform bulletTrans; // 파티클을 렌더시킬 위치에 관한 트랜스폼.
bulletTrans.SetLocation(hitInfo.ImpactPoint); // 라인트레이스의 충돌위치로 셋팅.
UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), mBulletEffectFacctory, bulletTrans); // 파티클렌더.
}
'UnrealEngine5 > 이것저것' 카테고리의 다른 글
Tick을 안쓰는곳에서는 반드시 꺼주도록 하자. (0) | 2022.10.26 |
---|---|
애니메이션 중요로직은 C++클래스에서 하자. (0) | 2022.10.26 |
UMG 최적화에 대한 좋은 내용 (1) | 2022.09.26 |
뭔가 안된다 싶으면 블루프린트파일 삭제 후 재생성해보자. (0) | 2022.09.24 |
언리얼엔진에서의 컴파일 (0) | 2022.09.22 |