본문 바로가기

Unreal/문제해결

언리얼: LNK2001, LNK2019 등 unresolved external symbol 해결 언리얼 엔진은 C++를 언어를 사용하고, 여러 모듈을 참조해가며 작업해야 할 일이 잦습니다. 주기적으로 컴파일을 시도한다면 함수의 구현부를 작성하는 점을 잊는 등의 사소한 실수도 쉽게 파악해 큰 덩어리의 문제로 커질 일이 거의 없습니다. 때로는 어느 정도 규모의 작업을 한 번에 수행한 뒤 컴파일 및 런타임 테스트를 진행해야 하는 상황이 생깁니다. 일반적으로는 이미 만들어진 프레임워크의 리팩터링을 진행할 때 접할 수 있습니다. 여러가지 상황의 테스트 환경에서 다양한 개발을 시도하는 과정에서 많은 수의 링커 예외가 발생하면 당황스러울 수 있는데요, 다음 번 이와 같은 상황을 맞닥뜨렸을 때를 위해 순차적으로 확인해보았던 요소들을 기록해둡니다. 1. 함수의 구현부의 부재 헤더에 클래스를 정의하고 함수를 선언하였.. 더보기
언리얼: NoesisGUI 플러그인 컴파일 에러 Noesis라는 이름으로 프로젝트를 생성하면 UnrealBuildTool의 C# 스크립트에서 클래스이름 충돌이 생겨 빌드에 실패한다. 다른 이름으로 프로젝트를 만들면 해결된다. 더보기
언리얼: UE5 Montage Section은 별도 창으로 분리 UE5에는 하단의 메인 패널에 있던 몽타주 섹션이 우측 하단 패널 별도 윈도우로 분리되어 있다. 더보기
언리얼: Play시 카메라가 있는데도 임시 CameraActor가 생성될 때 Pawn에서 PossessedBy 함수를 override 해 놓고 Super를 호출해주지 않아 빙의 단계 초기화가 완료되지 않았다. 또는, PlayerController에서 OnPossess 함수를 override 해 놓고 Super를 호출해주지 않았을 수도 있다. 그 결과 Pawn에 붙여둔 카메라가 메인 뷰타겟 카메라로 지정되지 못했고, 레벨에 사용할 수 있는 카메라 액터가 없다고 판단한 PlayerCameraManager가 새로운 카메라 액터 인스턴스를 하나 생성한다. APlayerCameraManager::InitTempCameraActor API를 보면 된다. Pawn이나 PlayerController에서 override 한 메서드에서 제대로 Super를 Call 해주면 해결된다. 더보기
언리얼: AABPlayerController::Possess overrides final function 이득우 님의 책을 따라해보던 중 Possess 가상함수 오버라이드 과정에서 컴파일에러를 만났다. 정의를 따라가보니 4.22에서 Deprecated 되었고 OnPossess를 사용하라고 한다. 더보기