언리얼에서 블루프린트의 함수를 더블클릭하거나, 오른쪽 상단의 Parent Class의 이름을 클릭하면
연결된 IDE의 Native Class, Struct 혹은 Function 코드로 넘어가게 되는데,
이는 언리얼의 FSourceCodeNavigation에서 하는 역할이다.
언리얼에서 FSourceCodeNavigation를 사용하는 부분들을 보면
위의 Can~ 함수의 호출을 통해 Navigate가 가능한지 검사하고, 이후에 Navigate~를 호출하여
실제 소스코드로 이동시키는 작업을 한다.
[Node에서의 이동]
Blueprint에서 사용되는 모든 Node들의 최상위 Parent인 UEdGraphNode를 보면
CanJumpToDefinition, JumpToDefinition 함수가 선언되어 있는 것을 볼 수 있다.
그리고 Node를 더블클릭하면 위의 함수들이 호출된다.
Blueprint의 함수 노드인 UK2Node_CallFunction을 보면
CanJumpToDefinition 및 JumpToDefinition을 override를 한 것을 알 수 있다.
FSourceCodeNavigation의 Function Navigate를 이용해서 Node를 더블클릭시 Native Code로 이동하게 끔 하는 것을 볼 수 있다.
[Hyperlink에서의 이동]
위와 같이 우측상단의 Parent Class를 클릭해서 소스코드로 이동하는 것은
Hyperlink를 통한 Navigate이다.
Hyperlink 클릭시 OnNavigate 델리게이트가 호출되는 것을 알 수 있다.
FSourceCodeNavigation::OpenSourceFile을 호출해서 Source Code를 보여주는데,
여기서 중요한 것이 Accessor이다.
언리얼에 연결된 IDE가 Visual Studio만 있는 것이 아니기 때문에, 각 IDE마다 언리얼에서 구현한 Accessor가 존재한다.
VS, XCode, Rider, CLion 등등 IDE 별로 ISourceCodeAccessor를 Implement 한 Accessor들이 존재한다.
Accessor에 접근해서 OpenFileAtLine을 호출함으로써 실제 IDE에서 Source Code가 열리게 되는 것이다.
'Game Engine > Unreal' 카테고리의 다른 글
(Unreal) Editor 언어별 글꼴 (0) | 2023.03.21 |
---|---|
(Unreal) 블루프린트 매크로 (Blueprint Macro) (0) | 2022.11.02 |
(Unreal) Fasoo DRM으로 망가지는 언리얼 엔진 (0) | 2022.08.14 |
(Unreal) Events와 Multicast Delegates의 차이점에 대하여 (0) | 2022.08.06 |
(Unreal) UE4 with PhysX Visual Debugger (0) | 2022.06.03 |