본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ Interface

by MRG 2024. 6. 11.
728x90
반응형

 

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/interfaces-in-unreal-engine?application_version=5.3

 

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/GameplayArchitecture/Interfaces/

 

인터페이스

인터페이스 생성 및 구현 관련 레퍼런스입니다.

docs.unrealengine.com

 

 

 

 

 

▣ UINTERFACE 클래스는 실제 인터페이스가 아닙니다. 언리얼 엔진의 리플렉션 시스템에 대한 비저빌리티를 위해서만 존재하는 빈 클래스입니다. 다른 클래스에서 상속되는 실제 인터페이스는 클래스 이름이 동일해야 하지만 첫 'U'가 'I'로 변경됩니다.

 

▣ 인터페이스에서 함수를 선언하는 데 사용할 수 있는 여러 메서드가 있으며, 각 메서드는 서로 다른 컨텍스트에서 구현하거나 호출할 수 있습니다. 이들 모두는 인터페이스의 '접두사 I가 붙은' 클래스에서 선언되어야 하며, 외부 클래스에서 볼 수 있으려면 퍼블릭 이어야 합니다.

 

▣ Unreal Engine 5 (UE5)에서 C++ 인터페이스는 객체 지향 프로그래밍의 핵심 개념 중 하나로, 다형성을 통해 여러 클래스가 공통된 함수나 동작을 구현하도록 합니다. 인터페이스는 특정 기능을 여러 클래스에 걸쳐 구현할 수 있도록 하여, 코드의 유연성과 확장성을 높이는 데 유용합니다.

▣ 인터페이스의 장점
다형성: 다양한 클래스가 공통된 인터페이스를 구현할 수 있어, 코드의 일관성과 유지보수성을 높입니다.
유연성: 객체 간의 의존성을 낮추어, 클래스가 서로 독립적으로 동작할 수 있습니다.
확장성: 새로운 기능 추가 시 기존 코드를 변경하지 않고도 기능을 확장할 수 있습니다.

 

▣ c++에서 Interface를 생성합니다. 

h 헤더에서 추상 메서도(함수)를 선언합니다. 

 

 

▣ 다른 클래스에서 #include MyInterface.h 를 선언하고 class에 public IMyInterface를 추가합니다. 

그리고 인터페이스 함수를 override로 선언하고

 

 

▣ cpp 파일에서 MyInterface.h를 추가하고 함수 정의를 합니다. 

 

 

 

▣ 다른 클래스 cpp코드에서 MyInterface.h 를 추가하고 MyActor.cpp에서 함수구현부에서 사용했던 코드를 사용할 수 있습니다. 

 

▣ 인터페이스는 다형성을 제공하여 다양한 클래스가 동일한 함수나 동작을 구현하도록 할 수 있기 때문에 코드의 유연성과 확장성을 높이는 데 유용합니다. 

 

▣ 인터페이스는 다형성을 제공하여 서로 다른 클래스가 동일한 함수를 구현하도록 강제할 수 있습니다. 이를 통해 코드를 더 유연하고 확장 가능하게 만들어 다양한 객체가 공통된 행동을 수행하도록 할 수 있습니다. 이는 특히 큰 프로젝트에서 코드의 유지보수성과 재사용성을 크게 향상합니다.

728x90
반응형

댓글