그냥 게임개발자

[UE5] - 1장 Visual Studio 연동 및 오류 해결, C++ 클래스 생성 본문

UE5_Tutorial1

[UE5] - 1장 Visual Studio 연동 및 오류 해결, C++ 클래스 생성

sudoju 2023. 9. 19. 23:47

언리얼 엔진 5.3 버전을 설치한 후 UE5 문서에 언리얼 엔진용 Visual Studio 구성을 살펴보았다.

여기서 5.3은 무조건 VS2022버전이어야 한다.

VS 2019버전에선 .Net 6.0을 지원하지 않아서라고 한다.

 

사실 나는 VS2019상태에서 언리얼 프로젝트를 바로 생성해보았는데

웬걸... 바로 오류가 뜨더라...

 

스샷은 못찍었는데 무슨 17.4 어쩌구저쩌구 뜨던데 자세히 읽어보니 'VS2022깔고 최신으로 업데이트 해' 라는 소리였다.

 

그래서 VS2022설치할 때 사전에 필수로 다운받아야 할 요소들이 많다.

 

이것을 다 체크한 후에 

오른쪽 세부사항에 이것도 다 체크해서 설치하자 (필자는 Windows 10 SDK 다 설치하는 줄 알았다 그냥 최신버전 다운받으면 된다.)

 

 

설치가 다 되었으면 다음 권장 세팅이다. (굳이 안해도 되긴하지만..)

 

https://docs.unrealengine.com/5.3/ko/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/

 

Visual Studio 구성하기

언리얼 엔진에서 Visual Studio 사용을 위해 구성하기 위한 팁, 트릭, 기술을 소개합니다.

docs.unrealengine.com

 

이 사이트 들어가서 따라하자...

 

참고로 위에 글을 읽으면서 모르는 영어들은 다 아래를 보고 설정하자.

 

Standard = 표준

Solution Configurations = 솔루션 구성

Modify Selection = 선택 사항 수정

Always show Error List if build finishes with errors = 오류로 인해 빌드가 종료될 때 항상 오류 목록 표

Show Inactive Blocks = 비활성 플록 표시

Disable External Dependencies Folders = 외부 종속성 폴더 사용 안함

Edit And Continue = 편집하고 계속하기 및 핫 다시 로드 사용

 

 

 

여기까지 잘 따라왔으면 이제 프로젝트를 생성하기 전 마켓 플레이스에서 다운받아야 할 게 있다.

이건데.. 사실 C++클래스를 생성하면 이것을 설치하라는 경고가 떠서 다운받은거지 확실히 왜 다운받는지 모른다.

 

설명에는 VisualStudio가 블루프린트 참조를 표시할 수 있도록 해준다는데 음.... 아무튼

 

프로젝트 생성해보자 여기서 중요한 점은 절대 프로젝트 주소에 절대 한글경로가 있으면 안된다.

그리고 Developer, Test, Window 등 무언가 예약어, 플랫폼 같은 이름들은 프로젝트명에 쓰이면 안된다.

당연히 한글도 안되겠죠?

왜냐하면 빌드가 안됨 ㅇㅇ

 

C++ 를 선택하고

필자는 TutorialProject라 지었다.

오호 잘 생성되었다.

하지만 더 해야할 게 남아있다 아까 다운받은 Visual Studio Integration Tool을 추가해야 한다.

여기 플러그인에 들어가서 Visual Studio를 검색해서 아래로 내리면 우리가 다운받은 Visual Studio Integration Tool이 나온다. 그것을 체크해준 뒤 언리얼을 재시작하자.

언리얼이 재시작이 되면 이제 C++ 클래스를 생성해보자.

툴바에 있는 Tools를 눌러서 C++클래스를 생성해보자

 

필자는 Actor를 생성해서 잠깐 테스트만 해볼 것이다.

이름은 그냥 하고싶은 걸로 짓자.(Test 이런거 말고)

 

라이브 코딩이 진행되면서 C++ 클래스 파일이 생성됬다

후 근데 여기서 정말 시간을 많이 투자한 오류가 있다.

생성 하면 바로 오류가 이렇게 뜨는데.. 찾아본 결과 어떤 일본 개발자가

 이것을 그냥 빌드 전용으로 바꾸고 무시하라고 하더라.

근데 진짜 무시해야한다. 잘진행된다.

언리얼 엔진 문서에서도 권장하고 있다.

오류목록창을 끄라고 ㅇㅇㅇ

암튼 빌드 전용으로 바꾸자

 

깔끔:)

 

자 이제 간단하게 빌드를 해보자.

헤더파일에 스태틱 메쉬컴포넌트 변수를 만들어주고 UPROPERTY를 활용해 에디터에서 확인할 수 있는지 설정해주고

Cpp파일에는 이렇게 써주자.

 

※ 주의할 점

- 여기서 라이브 코딩이 켜진 상태에서 vs2022에서 빌드를 하게 되면 오류가 난다.

무조건 오류다. 오류

근데 이것을 읽지 않고 오류목록만 찾아봤다.......

이게 문제인줄 알고 MSB3073에 대한 오류를 찾아봤는데 그게 문제가 아니었다..

물론 UPROPERTY에 철자가 틀리거나 EditAnywhere가 철자가 틀리면 그럴수도 있다고 중국 개발자가 그렇다고 한다.

하지만 필자는 '아..틀리지 않았는데 무엇이 문제이지' 했는데. 

저렇게 빨간줄로 그인 영어로 정확히 써있다.

이씨ㅠㅠㅠ 영어공부하자..

암튼 그래서 라이브 코딩이 켜져있는 상태에서는 VS2022에서 빌드가 오류난다.

그렇기에 VS2022에서 빌드하고 싶으면 라이브 코딩을 끄고 하면 잘된다.

하지만 라이브 코딩이 진짜 좋다.

확실히 빠르다.

그러면 빌드는 어떻게 하느냐?

그냥 코드 수정한 거 저장하고 언리얼 에디터에서 Ctrl+Alt+F11을 누르면 알아서 빌드가 된다.

짱 편리하다.

이거 몰라서 서칭을 엄청 많이 해봤는데... 그냥 컴파일러에 딱 써있으니.... 너무 허탈했다.

아무튼 다시 빌드해보자.

 

오른쪽 아래 보면 Compling changes for live coding...이라고 적혀있는데 코드가 바뀐거 다시 빌드해주는 모습인 것 같다.

이제 내가 만든 MyTutorialMesh클래스를 배치해보자.

만약 그래도 빌드가 계속 실패한다면 에디터를 껏다 켜보자.

아무튼 이렇게 힘든 VS 연동과 C++ 클래스를 만드는 것을 마친다.

 

 

==================================================================================

수정사항(23.09.21)

잘못알았다.

라이브 코딩은 가끔씩 뷰포트에서 수정이 안될 때가 있다.

그럴 때는 라이브 코딩을 끄고 VS에서 빌드를 해야 한다.

오른쪽 하단에 세개의 점버튼을 누르고 라이브 코딩을 끈 다음

빌드를 해야 한다.

빌드 하는 방법은 솔루션 탐색기에서 오른쪽 버튼을 눌러 빌드를 하면 뷰포트에 실시간으로 잘 반영이 된다.

틀린 게 있으면 댓글로 알려주시면 바로 수정하겠슴당.