언리얼 C++ 인터페이스의 특징
- 기본적으로 C++ 인터페이스처럼 , 클래스가 반드시 구현해야하는 기능을 지정하는데 사용한다. ( 선언만 적용후 구현은 기본적으로 각 해당 인터페이스를 상속받는 각 클래스 구현부에서 한다, (하지만 후술한 내용처럼 인터페이스 자체에서 구현도 가능하다 )
- 언리얼에서의 인터페이스는 생성시 두개의 클래스를 생성하여 인터페이스를 구현한다. (UInterface , IInterface)
- 기본적으로 C++ 환경에서 작동하기 때문에 추상타입으로 강제되지 않는 특징을 가지고 있으며, 내부에 기본함수 구현을 할수 있지만 다른 클래스를 상속받고, 인터페이스도 같이 상속받는 다중상속의 경우에는 인터페이스의 기본함수를 호출하려면 인터페이스의 네임스페이스로 직접 호출해야한다.
- C++은 기본적으로 다중상속을 지원하지만, 인리얼 C++에서는 언리얼 C++에서 제공하는 인터페이스를 사용해 가급적 축소된 다중상속 형태로 구현하는 것이 향후 유지보수에 도움이 된다.
<aside>
💡 게임내 맵에서 모든 오브젝트들을 한 TArray Container에 넣어두고 foreach문내에서 특정 기능들을 한번에 호출 해야할때 언리얼 C++ 의 캐스팅 기능을 활용하여 해당 인터페이스를 상속받는 클래스면 특정기능을 호출하도록 할수 있다.
</aside>