본문 바로가기
Unreal

낙사 하는 박스 콜리전 + (클리어 타이머)

by ji-han 2025. 2. 26.

낙사하는 것을 구현하기 위해 맵 아래에 오버랩되었을 경우 낙사하는 함수를 호출하는 방식을 생각함

 

박스컴포넌트를 생성후

BoxComponent->SetCollisionProfileName(TEXT("OverlapAllDynamic"));

다이내믹 오브젝트들과 겹치는 Overlap를 활성화


BoxComponent->OnComponentBeginOverlap.AddDynamic(this, &ADropCheckBox::OnOverlapBegin);

BoxComponent에서 다른 오브젝트와 오버랩이 발생했을 때 OnOverlapBegin() 함수를 실행

 

 

OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)

OverlappedComponent 충돌을 감지한 컴포넌트 (BoxComponent)
OtherActor 박스에 들어온 오브젝트
OtherComp 충돌한 오브젝트의 콜리전 컴포넌트
OtherBodyIndex 충돌한 바디의 인덱스 (보통 0)
bFromSweep 이동 중 충돌인지 여부 (true / false)
SweepResult 충돌 위치, 방향 등의 정보

 

OtherActor을 이용해서 박스에 오버랩된 액터가 플레이어일 경우

플레이어의 OnDropDeath() 함수 실행

 

 

 

+ 클리어 타이머

클리어 타이머를 실행하여 타이머핸들러를 종료했음에도 또 다시 클리어 타이머를 실행했을 경우 문제 없음

클리어 타이머 안에서 실행 중인지를 확인한다고 함

'Unreal' 카테고리의 다른 글

사운드 적용  (0) 2025.03.05
위젯 블루프린트(GameOver)  (0) 2025.02.28
데칼 감지(레이캐스트)  (0) 2025.02.25
타이머핸들러 & 부착 규칙  (0) 2025.02.21
Line Trace(Raycast)  (0) 2025.02.19