티스토리 뷰
Effect Actor
게임에서는 체력 회복 오브젝트, 마나 증가 오브젝트와 같이 캐릭터의 Attribute에 영향을 주는 오브젝트가 존재한다.
이번에는 이러한 역할을 하는 범용 액터를 하나 만들 것이다.
Attribute 변경은 원래 Gameplay Effect를 사용하는 것이 정석이나, 아직 배우지 않았기 때문에 임시로 Attribute를 직접 수정하는 방식을 사용한다.
먼저 범용 액터 역할을 할 새 C++ Actor 클래스를 생성한다.


그리고 루트 컴포넌트이자 시각적인 오브젝트로 Static Mesh Component를, 오버랩 감지용으로 루트에 붙일 private 변수인 Sphere Componet를 만들어줄 것이다.
추가적으로 해당 액터에서는 Tick를 다룰 필요가 없기에 해당 내용을 삭제해주었다.


이제 OverLap 이벤트 함수를 생성해줄 것이다.
OnOverlap은 액터가 서로 겹칠 때 실행하며, OnEndOverLap은 겹침에서 벗어날 때 실행된다.
또한 해당 함수들은 콜백 함수가 호출되도록 바인딩 해주는 작업을 해주어야 한다.
각 함수에서 필요한 파라미터로는 다음과 같다.
OverlappedComponent
지금 이벤트를 발생시킨 컴포넌트
현재 코드에서는 Spehre
OtherActor
겹친 대상 Actor
OtherComp
상대 Actor의 컴포넌트 (Capsule, Mesh 등)
OtherbodyIndex
물리 Body 인덱스
SkeletalMesh 같은 경우 여러 Body 있을 때 구분용
bFromSweep
Sweep 이동으로 겹쳤는지 여부
캐릭터가 이동해서 들어온 경우 -> true
이미 오버랩 구역 안에 스폰된 경우 -> false
SweepResult
Hit 위치, 충돌 지점 등
OnEndOverlap의 경우 겹친 상태가 끝났기 때문에 충돌 관련 정보가 필요 없어서 bFromSweep과 SweepResult는 필요없다.


우리가 현재 만들고자 하는 액터는 체력을 25 증가시키는 포션이다.
원래는 수정이 불가능하도록 const를 사용하여 AttributeSet 포인터를 만들었지만, 지금은 학습 목적의 테스트를 위해 const를 제거한 변수를 두어 임의로 체력 증가가 가능하도록 만들 것이다.
포션 같은 아이템의 경우 사용하면 사라지는 것이 보통이기에 마지막에 Destroy()를 호출한다.

이제 블루 프린트 클래스를 만들고, 포션 Mesh를 할당해줄 것이다.
추가적으로 포션의 크기와 오버랩 범위도 조정해주자.



이제 포션을 맵에 비치한 후 ShowDebug AbilitySystem을 통해 정보를 화면에 띄운 후 포션 습득 전 후의 체력을 확인할 수 있다.


'Unreal > Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 4-3 (0) | 2026.03.17 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 4-2 (0) | 2026.03.15 |
| Gameplay Ability System - Top Down RPG / Section 3-8 (0) | 2026.03.13 |
| Gameplay Ability System - Top Down RPG / Section 3-7 (0) | 2026.03.11 |
| Gameplay Ability System - Top Down RPG / Section 3-6 (0) | 2026.03.10 |
