언리얼엔진 공식 문서 (v5.2) 훑어보기.
[프로그래밍 및 스크립팅 > 개발 구성]
Visual Studio 구성하기
> UnrealVS 익스텐션
> Visual Studio 팁 & 트릭
언리얼 엔진용 VS Code 구성
소스에서 언리얼 엔진 빌드하기
빌드 환경설정 레퍼런스
Live Coding
프로그래밍 툴
> 희소 클래스 데이터
Visual Studio 구성하기
언리얼 엔진 버전 5.1 이상 = VS 2019 (Default) / VS 2022
언리얼 엔진 버전 4.25 - 5.0 = VS 2019 (Default)
UE 5.1부터 최신 버전을 지원하는 플랫폼 SDK 설치한 경우 언리얼 빌드 툴(Unreal Build Tool, UBT) 에서 설치된 Visual Studio의 최신 버전 솔루션 파일 생성.
UE 필수 구성 요소 인스톨러
로컬에서 빌드한 UE 툴을 사용하기 위해서는 필수로 수동 실행해야 함.
경로 : UNREAL_ENGINE_ROOT\Engine\Extras\Redist\en-us\
VS를 사용한 언리얼 엔진 개발 시 다음 옵션을 설치해야
[Visual Studio Workloads]
.NET desktop development
Desktop development with C++
Universal Windows Platform development
Game development with C++
[C++]
C++ profiling tools
C++ AddressSanitizer
Windows 10 SDK (10.0.18362 or Newer)
Unreal Engine installer
Visual Studio 설정하기
솔루션 구성 드롭다운 메뉴 폭 늘리기
툴바 메뉴 Customize > Commands 탭 > Toolbar 라디오 버튼 > 드롭다운 메뉴 Standard 선택 > Preview 목록에서 Solution Configurations 컨트롤 선택 > Modify Selection 버튼 클릭.
Width 를 200 이상으로 설정.
오류 목록(Error List) 창 끄기
언리얼 엔진에서 사용할 때는 오류 목록 창에 잘못된 오류 정보가 표시될 수 있음. 오류 목록 창을 비활성화하고 언리얼 엔진 출력 창의 실제 코드 오류를 확인하는 것이 좋다.
Tools > Options
옵션창에서 Projects and Solutions 선택하고 Always show Error List if build finishes with errors 체크 해제.
유용한 기타 구성 설정
Show Inactive Blocks 해제 : 너무 많은 코드 청크가 회색으로 표시될 수 있음.
(Tools > Options > Text Editor > C/C++ > View)
Disable External Dependencies Folders 체크 : 솔루션 탐색기의 불필요한 폴더 숨김.
(Tools > Options > Text Editor > C/C++ > Advanced)
Edit & Continue 해제 : 언리얼엔진 작업 시 이 기능이 항상 정상 동작하는 것을 보장할 수 없기 때문에 불필요할 수 있음.
(Tools > Options > Debugging > Edit and Continue)
IntelliSense 활성화 (매우 느린 편. Rider 등의 외부 에디터를 사용할 수 있다면 고려)
UnrealVS
익스텐션 설치 파일 위치.
UnrealEngine/Engine/Extras/UnrealVS/
설치한 뒤, View >Toolbars 또는, 툴바 영역 우클릭 후 UnrealVS 선택해서 툴바 표시.
Tools > Customize... 에서 Commands 탭의 Toolbars 라디오버튼 > UnrealVS 에서 커스터마이즈 가능.
Add Commands... 버튼을 클릭하면 UInrealVS 명형들 추가 가능.
UnrealVS - 스타트업 프로젝트 설정
Startup Project 드롭다운으로 Startup Project 간의 전환이나 세팅을 빠르게 할 수 있음. Game 프로젝트만 보이려면, Tools > Options... 에서 UnrealVS 를 선택, Hide Non-Game Startup Projects 활성화.
UnrealVS - 단축키 설정
Tools > Options... 대화창 Environment > Keyboard 선택.
Apply the following additional keyboard mapping scheme 드롭다운 클릭하고 Visual C++ 6 선택.
시작 프로젝트 빌드 단축키 설정
UnrealVS.BuildStartupProject : (예시)[Ctrl + Alt + Shift + B]
단일 소스 빌드 단축키 설정
(현재 솔루션 구성, 플랫폼, -singlefile = <현재 열려있는 파일의 경로> 인수를 사용)
UnrealVS.CompileSingleFile : Ctrl+F7
명령줄 인수 (Command-Line arguments)
Command-Line (명령줄) 컨트롤은 디버깅 세션에서 실행하는 현재 프로젝트에 대한 Command Arguments (명령줄 인수)를 설정하는 데 사용. 프로젝트 Properties 를 통해 설정하는 것과 동일하게 작동. 툴바에 입력하면 자동으로 반영 됨.
텍스트 박스에 인수를 입력하거나, 드롭다운 목록 중 최근의 인수 목록에서 선택. 디버깅 세션이 시작될 때 실행파일에 그 인수가 전달.
언리얼 에디터를 빌드하는 게임 프로젝트에 대한 프로젝트 환경설정, 에디터 실행파일이 사용중인 프로젝트를 알 수 있도록 명령줄에 프로젝트 이름이 자동으로 붙음.
UnrealVS 프로젝트 새로고침
UnrealVS 툴바의 프로젝트 새로고침 버튼 클릭.
배치 빌더 (UnrealVS Batch Builder)
Visual Studio 의 Build > Batch Build... 옵션보다 다용도.
UnrealVS 툴바의 배치 빌더 버튼 클릭. (새로고침 버튼 옆 톱니바퀴 모양)
Project, Config, Platform, Build Job(라디오버튼 Build, Rebuild, Clean) 전택하고 > / < 버튼으로 잡을 추가/제거
Batch Builder 출력 표시는 Visual Studio Output 창에서 UnrealVS - BatchBuild 라는 이름의 패널에 표시
Unreal VS - Quick Build 메뉴
IDE에서 솔루션 환경설정 및 솔루션 플랫폼을 변경하고 빌드를 시작한 다음 환경설정 및 플랫폼을 다시 전환하는 것보다 훨씬 빠름.
Solution Explorer 에서 Project 노드에 우클릭.
UnrealVS Quick Build 메뉴에 언리얼 엔진 솔루션에서 사용가능한 플랫폼과 빌드 환경설정에 대한 서브메뉴.
항목 선택.
UnrealVS 소스 코드
위치 : UNREAL_ENGINE_ROOT/Engine/Source/Programs/UnrealVS/
Visual Studio 2019 까지 지원하려면 Visual Studio 2019 SDK 를 설치한 다음, Visual Studio 2019 에 UnrealVS 프로젝트 파일을 로드해 줘야 함.
Visual Studio 직접 실행 창
블루프린트 콜스택
**{,,UnrealEditor-Core}::PrintScriptCallstack()**
현재 프레임 번호(조건식 중단점으로도 작동함)
**{,,UnrealEditor-Core}::GFrameNumber**
PIE ID(멀티플레이어에 유용함, 조건식 중단점으로도 작동함)
**{,,UnrealEditor-Core}::GPlayInEditorID**
PIE 창 이름(멀티플레이어에 유용함)
**UnrealEditor-Engine!GPlayInEditorContextString**
컴파일러 최적화 비활성화/활성화
최적화가 비활성화되면 코드가 트레이스 또는 단계별 디버그 세션 동안 필요한 임시 또는 디버깅 변수를 제거하지 않고 작성한 대로 정확히 실행. 전체 디버그 빌드를 사용하지 않고 선택적으로 파일을 디버그하고 싶을 때 유용.
PRAGMA_DISABLE_OPTIMIZATION
PRAGMA_ENABLE_OPTIMIZATION
뷰포트에 디버그 선 그리기
디버그 선 은 뷰포트에 그려지는 선으로, 주로 선 트레이스나 패스의 경로를 보여주는 용도
#include "DrawDebugHelpers.h"
DrawDebugLine(GetWorld(), START, END, FColor::Green);
// Debug Drawer 목록
DrawDebugBox
DrawDebugSphere
DrawDebugCapsule
DrawDebugCylinder
DrawDebugPlane
DrawDebugCone
DrawDebugSolidBox
DrawDebugFrustrum
DrawDebugCamera
DrawDebugMesh
//화면에 디버그 텍스트를 작성하는 방법 예시
#include "Engine/Engine.h"
FString MyDebugString = FString::Printf(TEXT("MyVelocity(%s)"), *MyVelocity.ToCompactString());
GEngine->AddOnScreenDebugMessage(INDEX_NONE, 0.f, FColor::Yellow, MyDebugString, false, FVector2D::UnitVector * 1.2f);
//`FString::Printf` 함수는 스트링 포맷 파라미터를 취할 수 있어, 변수를 포함하는 스트링을 빠르게 구성하는 방법을 제공합니다. `GEngine` 에 액세스하려면 `AddOnScreenDebugMessage` 를 호출할 수 있도록 `Engine.h` 를 포함해야 합니다. 스트링 포맷 사용법에 대한 자세한 정보는 [언리얼 엔진의 스트링 처리](programming-and-scripting\unreal-architecture\string-handling)를 참조하세요.
//### 열거형을 스트링으로
//열거형(Enum)은 스태틱 `UEnum` 에서 `GetNameStringByValue` 를 호출하고 이름을 얻고자 하는 값과 함께 제공하여 스트링으로 변환할 수 있습니다. `UEnum` 은 값이 전달되는 열거형과 동일한 타입의 `StaticEnum` 으로 초기화해야 합니다.
EMyEnum::Type MyVariable;
static const UEnum* Enum = StaticEnum<EMyEnum::Type>();
Enum->GetNameStringByValue(MyVariable);
Visual Studio 2019 속도 높이기
디버깅 개선
Option > Debugging > General 에서 다음 세팅을 비활성화
> 디버깅하는 동안 Enable Diagnostic Tools 를 비활성화
> 디버깅하는 동안 Show elapsed time PerfTip 를 비활성화
솔루션을 열거나 디버깅할 때 Visual Studio가 느린 경우
심볼 검색에 Visual Assist 등의 다른 플러그인을 사용 중인 경우, 솔루션을 파싱하지 않도록 Intellisense 데이터베이스를 비활성화.
Tools > Options > Text Editor > C/C++ > Advanced > Set Disable Database = true
Perforce 사용자 전용
Perforce Visual Studio 히스토리가 모든 메서드 위에 표시되는 경우
Tools > Options > Text Editor\All Languages\CodeLens > Enable CodeLens 를 체크 해제
가벼운 무료 오픈 소스 대체재로서 Visual Studio Code(VS Code) 도 지원
VS Code 코드에 Windows용 Visual Studio와 동일한 기능을 부여하려면 추가적인 수동 구성이 필요
https://docs.unrealengine.com/5.2/ko/setting-up-visual-studio-code-for-unreal-engine/
'Unreal 엔진' 카테고리의 다른 글
[Unreal] 언리얼 엔진 5.4 출시. "언리얼 엔진 5.4가 게임 판도를 바꾸는 이유" 요약 정리 (0) | 2024.05.02 |
---|---|
[UE] 언리얼 엔진 DirectX 11 RHI 렌더링 분석 노트 (0) | 2023.09.12 |
[UE] AMD AGS (AMD GPU Services) (0) | 2023.09.12 |
[UE] UGameInstance 살펴보고 커스텀 BP/C++ GameInstance 만들어보기 (0) | 2023.07.19 |
[UE] 간단한 입력 처리 C++ 구현 및 향상된 입력 시스템 활용 (0) | 2023.07.18 |
[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 6편 (완) (0) | 2023.07.14 |
[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 5편 (0) | 2023.07.13 |