본문 바로가기

Unreal

언리얼: LNK2001, LNK2019 등 unresolved external symbol 해결 언리얼 엔진은 C++를 언어를 사용하고, 여러 모듈을 참조해가며 작업해야 할 일이 잦습니다. 주기적으로 컴파일을 시도한다면 함수의 구현부를 작성하는 점을 잊는 등의 사소한 실수도 쉽게 파악해 큰 덩어리의 문제로 커질 일이 거의 없습니다. 때로는 어느 정도 규모의 작업을 한 번에 수행한 뒤 컴파일 및 런타임 테스트를 진행해야 하는 상황이 생깁니다. 일반적으로는 이미 만들어진 프레임워크의 리팩터링을 진행할 때 접할 수 있습니다. 여러가지 상황의 테스트 환경에서 다양한 개발을 시도하는 과정에서 많은 수의 링커 예외가 발생하면 당황스러울 수 있는데요, 다음 번 이와 같은 상황을 맞닥뜨렸을 때를 위해 순차적으로 확인해보았던 요소들을 기록해둡니다. 1. 함수의 구현부의 부재 헤더에 클래스를 정의하고 함수를 선언하였.. 더보기
언리얼: C++ 클래스 추가시 자동 컴파일 해제 언리얼 엔진 에디터에서 C++ 클래스를 추가하면 자동으로 컴파일을 시도합니다. 여러 클래스를 추가하려는 경우 빌드에서 소모되는 CPU 자원과 인터벌에 불만이 생길 때가 생깁니다. 상단 메뉴의 편집 - 에디터 개인설정 - 기타 메뉴에서 C++ 자동 컴파일 옵션을 끌 수 있습니다. 더보기
언리얼: Build.cs에서 디렉터리 존재유무 확인하기 언리얼 엔진 플러그인 개발시 다른 플러그인에 종속성을 갖는 것은 자주 생기는 일입니다. 모듈의 Build.cs에서 다른 모듈을 디펜던시에 추가함으로써 라이브러리를 가져다 사용할 수 있게 되는데요, 만약 종속성이 생겨야 하는 모듈이 존재하지 않을 수도 있다면 어떻게 처리해야할까요? 엔진 단에서 직접적인 기능을 제공하지는 않지만, 간접적으로나마 몇 가지 사항을 체크하여 동적으로 종속성의 판단을 수행할 수 있습니다. 다만 동적이라고 표현되었지만 빌드 스크립트에서 지정해 컴파일 타임에 진행된다는 점을 유의해야 합니다. 플러그인이 설치되었는지 몇 가지 단서가 존재할 수 있는데요. 1. 설치된 엔진에 플러그인이 존재하는지 or 프로젝트에 플러그인이 존재하는지 2. 현재 프로젝트에 플러그인이 활성화 되었는지 3. 적.. 더보기
언리얼: Module Chronicle 1 - 모듈의 이해 이 아티클은 언리얼 엔진을 파악해 가는 단계에 계신 독자를 위해 풀어 쓰여진 글입니다. 직관적이고 쉬운 전달을 위해 풀어 쓰는 과정을 거치다보니, 일부 전달이 매끄럽지 못한 부분이 있을 수 있습니다. 이해가 어렵거나 잘못된 내용을 발견하시면 다음 독자를 위해 한 말씀 부탁드립니다. 감사합니다. 서론 언리얼 엔진은 수 백개가 넘는 수의 모듈로 구성되어 있습니다. 언리얼 엔진은 왜 이렇게 많은 수의 모듈로 분리하여 엔진을 관리하고 있을까요? 모듈 형태로 코드를 관리하는 전략은 수 많은 장단점을 갖고 있겠지만, 언리얼 엔진이 주목했을 것으로 보이는 장점은 다음과 같습니다. 컴파일과 링킹에 소요되는 시간 절약 사용할 모듈만 배포하여 필요한 사이즈의 바이너리 생성 런타임에서 필요할 때 동적으로 적재 가능 간편한 .. 더보기
EOS: 인증 인터페이스에서 AuthScopeConsentRequired를 리턴할 때 1.14.1 버전에서 발생했습니다. 동일한 코드로 1.14.0 에서 문제없이 작동했습니다. EOS_EAuthScopeFlags | Epic Online Services Developer (epicgames.com) EOS_EAuthScopeFlags EOS API reference page for EOS_EAuthScopeFlags dev.epicgames.com 인증 스코프에 관련한 에러코드이나, 이 인증스코프를 포함하여 리퀘스트를 던져도 버전별로 상이한 결과를 리턴하는 버그입니다. 해결 : 1.14.0으로 다운그레이드 더보기
EOS: DevTool Authenticate 파라미터 에픽온라인서비스 개발단계에서 개발자용 DevTool을 사용하게 됩니다. Epic.OnlineServices.Auth.Credentials LoginCredentialType.Developer LoginCredentialType.Developer로 세팅하고, SDK Tools에서 Dev Tool을 열어서 세팅합니다. 데브 툴에서 에픽 계정으로 로그인하고 포트, 이름을 지정한 다음, 코드에서 Auth.Credentials에서는 ID에 주소, Token에 이름을 넣어주면 됩니다. var loginOptions = new Epic.OnlineServices.Auth.LoginOptions() { Credentials = new Epic.OnlineServices.Auth.Credentials() { Type =.. 더보기
EOS: RedPoint Games EpicOnlineSubsystem 플러그인 세팅하기 Free 버전을 다운로드합니다. https://redpointgames.gitlab.io/eos-online-subsystem/docs/ Welcome | EOS Online Subsystem Getting started with the EOS Online Subsystem plugin for Unreal Engine. redpointgames.gitlab.io 개발자포털에서 Organization을 생성합니다. https://dev.epicgames.com/portal/en-US/ https://dev.epicgames.com/portal/en-US/ dev.epicgames.com EOS 개발자 포탈에서 C SDK를 다운로드받습니다. 다운로드 받은 SDK를 C:\ProgramData 경로에 위치시킵니.. 더보기
EOS: Redpoint Games 플러그인 QueryStats, Leaderboards 작동 문제 https://www.unrealengine.com/marketplace/ko/product/eos-online-subsystem EOS Online Subsystem, 카테고리 코드 플러그인 - UE 마켓플레이스 Use Epic Online Services in your Unreal Engine game! This plugin provides an online subsystem for Epic Online Services. www.unrealengine.com 언리얼 엔진 EOS 플러그인으로 판매되고 있습니다. https://gitlab.com/redpointgames/eos-online-subsystem-example/-/tree/main/ExampleCPP_EOS_4.26 ExampleCPP_EOS.. 더보기