본문 바로가기

언리얼C++게임개발/01.개발환경설정

[이득우C++게임개발] C++프로젝트로의 확장

프로젝트 만들때 템플릿을 ThirdPerson C++ 스타터컨텐트선택했지만 안하셨어도 추후 언리얼에디터에서 다 추가할 수 있다. 블러거는 처음에는 모르고 몇번이나 처음부터 다시 만들었었다.

 

어떤 프로젝트라도 C++클래스는 추가가능하다.

Tools메뉴에서 New C++ Class를 선택

부모클래스를 Actor로 선택한다. 다음화면에서 ClassType은 Public선택후 이름은 Fountain으로 한다

Create를 클릭하면 

언리얼이 라이브코딩이라고. 언리얼이 비주얼스튜디오를 직접 작동시킨다 Build fail이난다.

그리고 C++클래스는 다음 C++/프로젝트명폴더에 생기는 데 가보면 아직 만들어지지 않았다.

당황하지 말자. C++클래스를 만들면 무조건 언리얼에디터를 끄고 Visual Studio로 가서 빌드를 해야한다.  Visual Studio로 이동한다. 파일 수정 감지가 뜬다 언리얼이 새로운 C++파일을 만든걸 Visual Studio가 반영하겠다는 거다 모두다시로드 클릭해준다.

Visual Studio 솔루션탑색기 프로젝트명 폴더를 열어보면 방금만든 Fountain.cpp,Fountain.h가 만들어져있다.

 

여기 까지 확인했으면 언리얼에디터로 돌아가 라이브 코딩 팝업을 끄고 오른쪽 아래 All Saved를 확인한다. 방금 만들어진 C++파일들은 언리얼이 아닌 Visual Studio가 관리한다는 걸 알수 있다. 언리얼이 관리하는 블루프린트를 만든었다면 2 unsaved라고 뜨고 클릭해서 저장했어야 한다. 이점 잘 생각해보시길. 

과감히 언리얼을 끄고 혹시 Save하라는 화면이 뜨는 전부 세이브하고 Visual Studio에서 에디터가운데  로컬Windows디버거 오른쪽 빈삼각형을 누른다.  그럼 빌드가 시작한다. 그럼 다음과 같이 빌드가 성공한다. 언리얼에디터를 켜고 하면 절대 안된다.

성공했다면 자동으로 언리얼에디터가 켜져있다.  여기까지 인터넷에 자세한 사항이 안 나와있다. 많은 책들도 마찬가지고 블로거는 여기서 몇번이나 좌절했는지 모른다 ㅠㅠ. 언리얼에디터로 가기전 세이브해준다.

컨텐트드로워를 열면 아까와 다르게 Public이라는 폴더가 만들어져 있고 폴더로 이동하면 Fountain이라는 C++Class가 만들어져 있다.

이렇게 C++클래스를 한번 만들면 이제 언리얼을 다음에 실행시는 프로젝트폴더내에 새로 생긴 Visual Studio 솔루션 파일 ArenaBattle.sin 을 클릭해 Visual Studio로 들어가 빈삼각형 빌드 아이콘을 클릭해 열어야 한다. 그래야 언리얼과 Visual Studio가 연결된다. 

Source라는 폴더는 우리가 방금만든 C++파일들이 저장되고 절대 건드리면 안된다.

Binaries폴더는 빌드 될대 결과물이 저장되는 공간으로 지워도 된다.

 

언리얼 C++프로젝트의 컴파일과 실행과정을 요약하면 다음과 같다. c++클래스는 비주얼 스튜디오가 만들어 줘야하고 언리얼이 사용한다는거다 C++생성자가 새로 생성되거나 변경되면 현재로서는 언리얼을 빠져나가 비주얼 스튜디오에서 빌드후 "자동"으로 언리얼에디터를 켜야한다. 아직 언리얼 라이브코딩은 C++클래스의 생성및 생성자변경을 처리하지 못한다. 이유는 모르겠지만 .언리얼엔진은 Visual Studio로 만들어진거다. 생성자의 변경은 DLL의 변경이 일어나고 이때 뭔가 공유문제가 생기는듯하다. 이런원리도 프로젝트명 이외의 언리얼엔진폴더내 파일은 절대 건드리면 안된다.

그림 C++프로젝트의 동작

더 자세한 사항은 이득우 선생님의 다음 사이트를 참조하면 좋을것 같다.

https://blog.naver.com/destiny9720/220934078589

 

[1-2] 언리얼 빌드 시스템

이번 시간에는 언리얼 C++ 빌드의 기본을 이루는 언리얼 빌드 시스템에 대해 알아보겠습니다. 강좌 ...

blog.naver.com