UE4 When You Can’t Compile C++ Source Code or Can’t Add New C++ Class inside the Editor

  1. Shut down the Unreal Engine.
  2. Navigate to your project folder, where there are files like Visual Studio solution file, and Unreal Engine project file.
  3. Right click your Unreal Engine project file.
  4. Select “Generate Visual Studio Project Files”. If there is no option like this, follow the steps that are described in this link.
  5. Now double click the Unreal Engine project file, and the Unreal Engine editor will open up.
  6. Now you can add new C++ source code and then compile it inside the editor.

Output to Text File

IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
bool AllowOverwriting = false;
if (PlatformFile.CreateDirectoryTree(*FileSaveDir))
{
//FString FileName = "b" + FString::FromInt(FrameNum) + ".txt";
FString FileName = "vertices_faces.obj";

// Get absolute file path
FString AbsoluteFilePath = FileSaveDir + "/" + FileName;

// Allow overwriting or file doesn't already exist
if (AllowOverwriting || !FPaths::FileExists(*AbsoluteFilePath))
{
FFileHelper::SaveStringToFile(OutputTXT, *AbsoluteFilePath);
}
}

깃허브를 통한 언리얼엔진 프로젝트 공유 방법

오늘은 깃허브를 통해 언리얼엔진 프로젝트를 공유할 수 있는 방법에 대해 글을 써보고자 합니다. 그동안의 시행착오를 통해 얻은 저만의 노하우입니다. 차차 개선해나갈 예정입니다. 많은 분들께 도움이 되었으면 좋겠습니다. (곧 언리얼엔진 공식 wiki에도 업로드 예정입니다.)

1. 기본원칙
깃허브에는 필수적인 파일만 올립니다. 깃허브에 업로드한 다른 파일을 통해 생성될 수 있는 부수적인 파일인 경우에는 올리지 않습니다.

2. .gitignore 파일
깃허브에 올릴 파일은 .gitignore 파일을 통해 관리합니다.

– .gitignore 파일이란?
.gitignore 는 무슨 파일을 git이 무시해야할지 (= 추적하는 것을 중단할지) 알려주는 파일입니다.

– .gitignore 파일에는 무슨 파일들이 포함이 되어야 하는가
크게 엔진에 의해 생성되는 파일 / 어셋 파일 / 비주얼스튜디오에 의해 생성되는 파일을 포함시키지 않습니다.

엔진에 의해 생성되는 파일과 비주얼스튜디오에 의해 생성되는 파일은 언리얼엔진 프로젝트 내의 ProjectName.uproject를 마우스로 오른쪽 클릭 -> Generate Visual Studio Files 하면 생성할 수 있기 때문에 1번의 기본원칙에 의해 git에 업로드하지 않습니다.

어셋파일의 경우, 용량이 크거나 (git은 크기가 100MB가 넘는 파일의 업로드를 허용하지 않음) / 처음에 만들고나서 다시 수정을 하지 않기 때문에 등의 이유로 git으로 추적을 하지 않습니다. 자주 수정을 할 경우에는 다른 방법으로 공유를 합니다. 이 방법에 대해서는 뒤에서 다시 다루도록 하겠습니다.

– .gitignore 파일 내용 (일반적인 경우)

#####################

#Unreal Generated Files#

####################

#*/Build

*/Binaries

*/DerivedDataCache

*/Intermediate

*/Saved

############

#Asset Files#

###########

*/Content/AssetFolderName1

*/Content/AssetFolderName2

*/Content/AssetFolderName3

##################

#VS Generated Files#

#################

*/.vs

 

3. 용량이 큰 나머지 파일들을 공유하는 방법

– 팀원들 사이에서 즉각적으로 공유할 때 : 외장하드를 통해 옮기는 것이 빠릅니다

  • 외장하드에 넣을 파일 목록: 어셋파일빌드데이터 파일 (일반적인 프로젝트의 경우)

*/Content/AssetFolder1

*/Content/AssetFolder2

*/Content/AssetFolder3

*/Content/Map/ProjectName_BuiltData.uasset

 

4. Github로 공유하는 절차

1. 먼저 Git Pull을 해서 필수적인 파일들과 merge 합니다.

2. ProjectName/Content 폴더 밑에 외장하드에 담은 어셋 폴더들 (Materials, Textures …) 을 복사합니다. 다 복사한 상태는 다음과 같습니다.

github_sharing_pic1

3. ProjectName/Content/Map 폴더 밑에 외장하드에 담은 파일인 LevelName_BuiltData.uasset을 복사합니다. 다 복사한 상태는 다음과 같습니다.

github_sharing_pic2

5. 주의해야할 점

Master Branch로부터 Pull 한 항목 중 코드가 있다면 (=Master Branch에 코드의 변경 내용이 포함되어 있다면) 4의 과정을 모두 실행한 뒤 */Build, */Binaries, */DerivedDataCache, */Intermediate, */Saved, */.vs 폴더와 그 이하의 파일들을 삭제하고 ProjectName.uproject를 마우스로 오른쪽 클릭 -> Generate Visual Studio Files 하여 필요한 파일과 폴더들을 자동으로 다시 생성시킵니다.