INTSourceChangelist:2432054 Availability:Public Title:UE4 용 Visual Studio 셋업하기 Crumbs: %ROOT%, Programming, Programming\Development Description:언리얼 엔진 4 로 개발하는 데 있어서 Visual Studio 셋업 관련 기법과 꼼수입니다. Version: 4.5 [TOC(start:2)] ## 개요 [EXCERPT:Intro] 언리얼 엔진 4 는 Visual Studio 2013 에 매끄럽게 통합되도록 디자인되어 있습니다. 이를 통해 빠르고 쉽게 프로젝트의 코드를 변경하고 그 컴파일 결과를 바로 확인할 수 있습니다. 언리얼 엔진 4 에 돌아가도록 Visual Studio 구성을 해 두면 언리얼 엔진 4 를 사용하는 개발자들의 전체적인 사용감과 효율을 향상시키는 데 도움이 됩니다. [/EXCERPT:Intro] 이 문서에서는 UE4 에서 VS2013 작업방식 셋업에 있어서의 기초를 다루겠습니다. ## 추천 세팅 언리얼 엔진 4 와 Visual Studio 를 사용하는 개발자에게 추천하는 세팅은 다음과 같습니다. [EXCERPT:BasicVSFormat] 1. **Solution Configurations (솔루션 구성) 드롭다운 메뉴의 폭을 넓힙니다:** 1. 툴바에 우클릭하여 뜨는 메뉴 하단에서 **Customize** (사용자 지정)을 선택합니다. 1. **Commands** (명령) 탭을 선택합니다. 1. **Toolbar** (도구 모음) 동글 버튼을 선택합니다. 1. **Toolbar** (도구 모음) 옆의 드롭다운에서, **Standard** (표준)을 선택합니다. 1. 아래 **Controls** (컨트롤) 목록에서, **Solution Configurations** (솔루션 구성) 컨트롤을 선택합니다. 1. 오른편의 **Modify Selection** (선택 사항 수정)을 선택합니다. **Width** (너비)를 "200" 으로 설정합니다. 1. **Close** (닫기)를 선택합니다. 툴바가 즉시 업데이트됩니다. 1. **솔루션 플랫폼 드롭다운을 추가합니다:** 1. 표준 툴바 가장 오른쪽의 버튼을 누르면, 도구 모음에 단추를 추가하고 제거할 수 있는 드롭다운 메뉴가 열립니다. ![](menu_dropdown.png) 1. 드롭다운 버튼을 클릭하고, **Add or Remove Buttons** (단추 추가/제거) 에 커서를 올린 다음, **Solution Platforms** (솔루션 플랫폼)을 클릭하여 도구 모음에 메뉴를 추가합니다. 1. **Error List(오류 목록) 창을 비활성화시킵니다**. 활성화시키면, 코드에 문법 오류가 날 때마다 **Error List** (오류 목록) 창이 뜹니다. 그러나 언리얼 엔진 작업을 할 때는, **오류 목록** 에 잘못된 오류 정보가 나타날 수 있습니다. 이 창은 비활성화시키고, **출력** 창을 통해 실제 오류만 확인하는 것이 최선입니다. 1. **Error List** (오류 목록) 창이 열려있으면 닫습니다. 1. **Tools** (도구) 메뉴에서 **Options** (옵션) 대화창을 엽니다. 1. **Projects and Solutions** (프로젝트 및 솔루션)을 선택한 다음 **Always show error list if build finishes with error** (오류로 인해 빌드가 종료될 때 항상 오류 목록 표시) 체크를 해제합니다. 1. **OK** (확인)을 클릭합니다. [/EXCERPT:BasicVSFormat] 다음과 같은 구성도 해 주면 좋습니다: * **Show Inactive Blocks** 를 끕니다. 그리 하지 않으면 다수의 코드 덩어리가 텍스트 에디터에서 회색으로 빠져 보입니다. (_Tools > Options > Text Editor > C/C++ > Formatting)_. * 솔루션 익스플로러의 **External** 폴더는 화면만 어지럽히니 그냥 끕니다. (_Tools > Options > Text Editor > C/C++ > Advanced_ 에서 **Disable External Dependencies Folder**) * 불필요한 **Edit & Continue** 기능을 끕니다. (_Tools > Options > Debugging > Edit and Continue_) * IntelliSense 를 켭니다. ([Intellisense](#Intellisense) 참고) **Visual Assist X 가 설치되어 있다면:** * **Format After Paste** 를 끕니다. 가끔 오동작을 합니다. (_VAssistX > Visual Assist X Options > Advanced > Corrections_) (#Intellisense) ## Intellisense, Live Errors, Squiggles 이제 UE4 프로젝트에 IntelliSense 가 제대로 지원되며, 라이브 Error List 와 "squiggles" 도 물론입니다! (켜는 법에 대해서는 아래 참고) IntelliSense 는 입력과 동시에 C++ 를 리컴파일합니다. VAX 의 문법 검사 기능만 있는 것보다는 훨씬 강력한데요, 코드 한 줄 한 줄 확인하는 C++ 컴파일러를 사용하기 때문입니다. 엄청난 기능이라 작업방식 속도를 크게 올려줄 것입니다! ![VC++ Intellisense Squiggles](squiggle.png) squiggles 와 함께 Error List 에 살펴보는 파일에 대한 IntelliSense 오류도 볼 수 있습니다. 이 기능은 Error List 의 우클릭 메뉴에서 껐다 켰다 할 수 있습니다. ![Error List](error_list.png) Squiggles 는 UE4 프로젝트에 작동하지 않던 것이라 이미 껐을 수도 있습니다. C/C++ Advanced 탭을 쳐서 아래와 같은 세팅이 되어 있는지 확인하시기 바랍니다. ![VC++ Advanced Options](intellisense_options.png) C++ 파일을 열 때, 이 아이콘을 살펴보면 IntelliSense 컴파일러가 "작업중" 이라는 것을 알 수 있습니다: ![Intellisense 진행상황 표식](intellisense_progress.png) ### 구현 세부사항 * 코드를 편집시 가끔은 Squiggles 가 나타나는 데 몇 초 걸릴 수 있습니다. * 그 이유는 그저 include 파일이 엄청 많고, IntelliSense 가 현재 PCH 를 사용하지 않기 때문입니다. * 가끔 "가긍정" IntelliSense 오류가 납니다. 이유는 여러가지 있을 수 있습니다. * IntelliSense 컴파일러 (EDG) 가 MSVC 컴파일러보다 엄격한 경우 * 일부 #define 이 평소 빌드시와는 달리 IntelliSense 에 대해 다르게 셋업된 경우 * IntelliSense 가 컴파일한 것은 항상 32 비트로 취급된 경우 * 코드를 `#ifdef __INTELLISENSE__` 로 둘러싸서 필요한 경우 Squiggles 를 없앨 수도 있습니다. * IntelliSense 오류 문구는 VC++ 컴파일러 오류와 약간 다르게 되어 있습니다. 그냥 그렇습니다. * 헤더 파일의 Squiggles 는 헤더를 포함하는 알려진 `.cpp` 에 대해 헤더를 컴파일하는 식으로 작동합니다. * 가끔 IntelliSense 가 이 작업을 망치면 헤더에 Squiggles 가 보입니다. * (위에 표시된) **Max Cached Translation Units** 세팅이 있으며, 원한다면 올릴 수 있습니다. * 메모리 사용량은 늘어나지만 반응속도가 약간 향상됩니다. * 아직 IntelliSense 와 호환되지 않는 C++ 파일이 조금 있습니다. * Unreal Build Tool 에 `-IntelliSense` 옵션이 새로 생겼습니다. * 모든 프로젝트 파일에 대한 IntelliSense 프로퍼티 시트를 뱉어내는 옵션입니다. * 새로운 모듈이 추가됐을 때나 프로젝트 인클루드가 변경되었을 때만 다시 실행시켜 주면 됩니다. ## UnrealVS 익스텐션 [INCLUDE:Programming/Development/VisualStudioSetup/UnrealVS#Overview] 익스텐션 셋업과 사용법에 대해서는 [](Programming/Development/VisualStudioSetup/UnrealVS) 문서를 참고해 주시기 바랍니다. ## 디버깅 Visual Studio 에는 `visualizer` 로 디버거를 확장하는 기능이 지원되어, FName 이나 동적 배열처럼 흔한 언리얼 유형을 쉽게 조사할 수 있습니다. ### Visual Studio 2013 에서의 Visualizer 셋업 [PUBLISH:Licensee] 비주얼라이저 로직이 들어있는 파일이 UE4 배포에 포함되어 있습니다: //depot/UE4/Engine/Extras/VisualStudioDebugging/UE4.natvis [/PUBLISH:Licensee] [PUBLISH:Rocket] 설치 과정에서 비주얼라이저 로직이 들어있는 파일을 찾을 수 있습니다. [UE4Root]/Engine/Extras/VisualStudioDebugging/UE4.natvis [/PUBLISH:Rocket] 이 파일을 다음 위치 중 한 곳에 복사합니다: [VSINSTALLDIR]/Common7/Packages/Debugger/Visualizers/UE4.natvis [USERPROFILE]/My Documents/Visual Studio 2013/Visualizers/UE4.natvis [REGION:warning] Visual Studio 인스톨 디렉토리에 파일을 복사하기 위해서는 관리자 권한이 필요할 수 있습니다. [/REGION]