상호 작용
개인 프로젝트의 상호 작용과 관련된 내용입니다.
개요
- 상호 작용 가능한 액터와 상호 작용 하기 위함.
구상
Section 호출
특정 물체와 상호작용 하고 나면 몬스터 웨이브 등의 섹션 시작
- tick 함수를 이용해 InteractRange 만큼 구형으로 Collide 감지함.
- character
- 상호 작용 가능한 액터와 Collide 하면 상호작용 HUD 생성.
- 상호 작용 키 누를 시 전방으로 line trace.
- 만약 상호 작용 가능 액터 감지 시 CurrentInteractionTime 증가.
- progress bar를 통해 얼마나 더 눌러야 하는 지 보여줌
- 비율은 CurrentInteractionTime / InteractionCompleteTime
- progress bar를 통해 얼마나 더 눌러야 하는 지 보여줌
- InteractionCompleteTime 까지 키를 눌렀다면, 감지 한 액터의 Interact 메서드 호출.
ItemBox
몬스터 드랍 혹은 레벨 상의 아이템 박스
- ItemBox Collision 크기를 mesh 크기보다 크게 만든다.
- 그러면 박스 근처에 도착하면 OnComponentBeginOverlap Dynamic Delegate가 발동된다.
- 아이템 관련 내용이 담긴 HUD를 띄운다.
- Interact 버튼 입력 시 Inventory로 아이템이 들어간다.
OnComponentBeginOverlap
UPROPERTY(BlueprintAssignalbe, Category="Collision")
FComponentBeginOverlapSignature OnComponentBeginOverlap;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_SixParams(
UPrimitiveComponent* OverlappedComp,
AActor* OtherActor,
UPrimitiveComponent* OtherComp,
int32 OtherBodyIndex,
bool bFromSweep,
const FHitResult& SweepResult
);
Leave a comment