less than 1 minute read

개인 프로젝트의 상호 작용과 관련된 내용입니다.

개요

  • 상호 작용 가능한 액터와 상호 작용 하기 위함.

구상

Section 호출

특정 물체와 상호작용 하고 나면 몬스터 웨이브 등의 섹션 시작

  1. tick 함수를 이용해 InteractRange 만큼 구형으로 Collide 감지함.
    • character
  2. 상호 작용 가능한 액터와 Collide 하면 상호작용 HUD 생성.
  3. 상호 작용 키 누를 시 전방으로 line trace.
  4. 만약 상호 작용 가능 액터 감지 시 CurrentInteractionTime 증가.
    • progress bar를 통해 얼마나 더 눌러야 하는 지 보여줌
      • 비율은 CurrentInteractionTime / InteractionCompleteTime
  5. InteractionCompleteTime 까지 키를 눌렀다면, 감지 한 액터의 Interact 메서드 호출.

ItemBox

몬스터 드랍 혹은 레벨 상의 아이템 박스

  1. ItemBox Collision 크기를 mesh 크기보다 크게 만든다.
  2. 그러면 박스 근처에 도착하면 OnComponentBeginOverlap Dynamic Delegate가 발동된다.
  3. 아이템 관련 내용이 담긴 HUD를 띄운다.
  4. 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