티스토리 뷰
반응형
상속클래스.h
void Interact_Implementation() override; //블루프린트에서도 사용가능//
virtual void InteractPure() override; //c++에서만 사용함//
상속클래스.cpp
void ACharacter::Interact_Implementation()
{
UE_Log(LogTemp, Warning, TEXT("Implementation");
}
void ACharacter::InteractPure()
{
UE_Log(LogTemp, Warning, TEXT("Pure");
}
이렇게 정의내린 함수는 두가지인데 위에 함수는 블루프린트에서의 호출을 동시에 사용할수 있으면 아래있는 가상함수는 c++에서만 정의내려 사용할수 있다.
인터페이스 메시징받을 클래스.cpp
OverlapCollision->GetOverlappingActors(OverlapActors);
for (uint8 i = 0; i < OverlapActors.Num(); i++)
{
//액터들의 클래스를 가져와 UWeapon_Interface의 정적클래스를 가져와 Interface를 상속받고 있는 클래스만 실행한다.//
if (OverlapActors[i]->GetClass()->ImplementsInterface(UWeapon_Interface::StaticClass()))
{
//직접 액터에 캐스터를 사용하여 인터페이스에 오버라이딩된 액터의 함수를 호출하는방식이다.//
//직접 바로 함수를 호출하기에 캐스팅할 액터는 선언하지 않는다.//
//c++에서만 호출할수 있다.//
Cast<IWeapon_Interface>(OverlapActors[i])->InteractPure();
//기존에서 사용하는 블루프린트에서 호출하는 방식으로 Implementation을 붙어주면 블루프린트에서도 호출을 가능하게 만들어준다.//
//아래와 같이 Execute_함수이름(호출객체, 입력값) 이런식으로 호출할수있다.//
//블루프린트와 c++에서도 사용할수 있다.//
IWeapon_Interface::Execute_Interact(OverlapActors[i]);
}
}
인터페이스를 직접 선언하여 호출하는법.cpp
IWeapon_Interface* Interface = Cast<IWeapon_Interface>(OverlapActors[i]);
if(Interface)
{
Interface->InteractPure(); //c++에서만 사용가능//
Interface->Execute_Interact(OverlapActors[i]); //블루프린트, c++에서도 사용가능//
}
Interface 가져오는 방법.
1. 각클래스의 Inteface상속여부를 확인한 다음 Interface를 직접 호출하는방법.
2. 액터의 Interface를 캐스팅하여 선언한 다음 호출하는 방법.
Interface 함수 호출하는 방법.
{
1. Inteface를 직접 호출하였을때.
1-1. 형변환하여 액터의 오버라이딩한 함수를 호출하는방법. (c++에서만 호출가능)
1-2. 오버라이딩한 함수에 (_Implementation)붙이며 Implementation이 붙은 함수를 호출할때는 "Execute_함수"를 호출하는 방법. (블루프린트와 c++에서 호출가능)
2.Inteface를 선언하여 호출하였을때.
2-1. 선언한 Inteface변수에서 그냥 함수호출하는 방법. (c++에서만 호출가능)
2-2. 선언한 Inteface변수에서 호출하는 함수가 Implementation이 붙어있는 경우 "Execute_함수"를 함수호출하는 방법. (블루프린트와 c++에서 호출가능)
}
반응형
'Unreal Engine 4 프로그래밍 c++ > 기능' 카테고리의 다른 글
Unreal c++ Interface uint + n 사용시 주의점. (0) | 2022.06.24 |
---|---|
c++ UCurve+ (Vector, float, LinearColor) 사용하기. (3) | 2022.02.23 |
Unreal c++ SplineComponent사용하기 (0) | 2022.01.19 |
unreal c++ interface사용하기 (0) | 2022.01.13 |
언리얼 블루프린트에서의 기능을 c++에서 기능사용하기 (0) | 2021.11.18 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Direct12
- DirectX12
- html5
- Direct3D
- Replicated
- 언리얼#게임
- 언리얼#c++#기능
- c++
- 언리얼엔진#FPS
- LockonSystem
- UnReal
- 영화리뷰
- RPC
- 프로그래밍
- Multiplayer
- 1993
- 게임프로그래밍
- DirectX
- ReplicatedUsing
- Multipalyer
- 언리얼#프로그래밍#c++#포트폴리오준비#블루프린트->c++전환
- 언리얼#c++#Interface
- 언리얼
- 게임
- directx3d
- 4.27
- 시애틀의 잠 못 이루는 밤
- ActorComponent
- 포레스트 검프
- 포트폴리오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함