Unreal Engine Blueprint & C++

2/10 Unreal Engine C++ Interface, ItemBase class

DB51 2025. 2. 12. 12:40

 

 

 

단축키

 

F12 (함수에서) : h <--> cpp

이동할 영역 선택 + Alt + 방향키 : 순서 이동

복사할 영역 선택 + Ctrl + D : Duplicate

Shift + 방향키 : 영역 선택



 

Interface 

 

 : 순수가상함수를 모아둔 클래스(순수가상함수만 넣어야한다). 기존 변수, 함수 그대로 사용.

 

ex) IC_ItemInterface

 

virtual void ActivateItem(AActor* Activator) = 0; // 정의 필요



 

 

순수가상함수 / 가상함수

 

virtual Function(); 

 – 가상함수 : 정의 여부 상관 없음. 정의하지 않는 경우 부모 그대로 상속.

 

virtual Function() = 0; 

– 순수가상함수 : 상속 받는 클래스에서 정의 해야한다.




 

ItemInterface 구현

 

 

C++ 클래스 생성 – 언리얼 인터페이스



 - C_ItemIterface.h에서 겹칠 경우의 함수 OnItemOverlap()과 겹친 이후의 함수 OnItemEndOverlap(), 아이템 활성화 ActivateItem(), 아이템 형태 GetItemType()를 순수가상함수로 구현.



C_ItemInterface.h

 



C_ItemInterface 상속 받는 C_ItemBase

 

ItemInterface를 상속 받는 부모 클래스 ItemBase에서 순수가상함수를 정의.

 - StaticMesh, Sphere(범위), Scene, ItemType 변수, 아이템 사용 후 없애기 위한 함수 DestroyItem().



C_ItemBase.h

 



C_ItemBase.cpp

 

* CreateDefaultSubobject()   : 변수 생성




ItemBase를 상속 받는 아이템 클래스 

 

Mine

 

C_Mine.h

 

C_Mine.cpp

C_Mine 기반 블루프린트 클래스 BPC_Mine 생성

 

 

 

* SphereComponent(충돌)보다 StaticMesh를 작게 만들어야 작동한다.




Potion

 

C_Heal.h



C_Heal.cpp

 

* #include “C_PlayerCharacter.h”  : 캐릭터의 체력을 올리는 작업을 위해 포함



C_Heal 기반 블루프린트 클래스 BPC_Heal 생성

 

 




Coin

 

C_Coin.h

 

 

C_Coin.cpp

 



C_Coin 기반 블루프린트 클래스 BPC_Coin 생성