[DAY104] SoulslikeProject(7) - Weapon Component, Actor

베리투스·2026년 2월 5일

TIL: Today I Learned

목록 보기
88/93

✅ 오늘 한 일 (Done)

  • 무기 충돌 감지 구현: On Component Begin Overlap 이벤트를 사용하여 무기와 몬스터의 충돌 시점을 캐치하는 로직 완성.
  • 이벤트 노드 생성 방식 숙지: 특정 컴포넌트(Box/Capsule)에 종속된 이벤트는 그래프 우클릭 검색이 아닌, 디테일 패널이나 컴포넌트 핀 드래그로 생성해야 함을 확인함.
  • 액터 소유권(Ownership) 정립: '컴포넌트'와 '부착된 액터' 사이의 Owner 인식 차이를 이해하고 Set Owner로 논리적 연결을 수행.

💣 트러블 슈팅 (Issue & Fix)

  • 문제: 캐릭터의 손에 무기 액터(Weapon Actor)를 Attach 했으나, 무기 내부에서 Get Owner를 호출하면 Null이 반환되는 현상.
  • 원인:
    • 컴포넌트는 생성되자마자 부모 액터를 자동으로 Owner로 인식함.
    • 반면 액터(무기)를 다른 액터(캐릭터)에 붙이는 것(Attach)은 물리적 위치 연결일 뿐, 논리적인 소유권은 연결되지 않음.
  • 해결: 무기 액터를 스폰(Spawn)하고 부착(Attach)하는 시점에 반드시 Set Owner 노드를 호출하여 명시적으로 주인을 지정해줌.

💡 핵심 코드 (Key Logic)

  • Collision Event Setup:

    • On Component Begin Overlap은 단순 검색으로 나오지 않음.
    • 방법: 충돌체 컴포넌트 선택 -> [Details] 패널 최하단 -> On Component Begin Overlap [+] 버튼 클릭.
  • Ownership Logic:

// [컴포넌트의 경우]
// 별도 설정 불필요. 자동으로 부모 액터를 가져옴.
AActor* Owner = GetComponent()->GetOwner(); 

// [액터(무기)의 경우]
// Attach만으로는 GetOwner가 Null임. 스폰 시점에 반드시 설정 필요.
WeaponActor->AttachToComponent(Mesh, ...);
WeaponActor->SetOwner(this); // <- 필수!
profile
Shin Ji Yong // Unreal Engine 5 공부중입니다~

0개의 댓글