Unreal GAS - 빌드 시 겪었던 문제

wnsduf0000·2025년 12월 1일

Unreal_GAS

목록 보기
12/34
  • 빌드 관련 문제
    • 배경: 어제까지의 진행 상황을 한번 커밋해두려는데, 첫 커밋에 실수로 Saved/Intermediate 폴더를 .gitignore에 등록하기 전에 커밋해버려서 계속 스테이지에 올라오는 것이 너무 거슬려 이를 정리하려 했다.

    • Saved/Intermediate/DerivedDataCache/.vs 폴더 등 커밋에 불필요한 용량을 차지하는 폴더를 제거하고 커밋을 해뒀는데, 프로젝트를 다시 빌드하려 하니 문제가 발생했다.
      발생한 문제점은 총 3가지 정도이며, 순차적으로 발생했다.

      • C4430/E0077 형식 지정자가 없습니다. 기본 int를 지원하지 않습니다. (FOnAttributeChangeData)
        • C4430인지 E0077인지 잘 기억이 안나지만, 형식 지정자가 없다는 에러 로그가 뜸.
        • OverlayWidgetController에서 발생한 문제였는데, 구조체는 전방선언 해주고, GameplayEffectTypes.h를 cpp 파일에 include 해줌으로서 해결되었다.
        • 다만 어제까지 작업할 때는 GameplayEffectTypes.h를 include 하지 않았어도 컴파일 및 빌드가 문제 없이 이뤄졌는데 무슨 차이인지는 아직 잘 모르겠다.
      • LNK2001, LNK2019 (AuraUserWidget, AuraHUD)
        • AuraUserWidget 및 AuraHUD에서 각각 LNK2001, LNK2019 에러 로그가 발생했다.
        • 링크 관련 문제였기 때문에 build.cs 파일과 연관이 있을거라 생각했는데,
          역시나 찾아보니 UWidget 상속 클래스를 사용하려면 build.cs 파일에 “UMG” 모듈이 있어야 했다. 모듈을 추가하니 해결되었다.
        • 다만 이 부분도 어제까지 작업할 때는 직접 UMG 모듈을 추가해 준 적이 없었는데, 에디터에서 C++ 클래스로 UUserWidget 상속 클래스를 만들 때 알아서 추가해 줬던 것일까? 굳이 build.cs 파일을 확인해보지 않았어서 잘 모르겠지만 아마 그랬을 듯 하다.
      • C++ 클래스가 컨텐츠 브라우저에 보이지 않던 문제
        • 이 부분은 일전에 겪었던 것과 마찬가지로, uproject 파일에 아래 내용을 직접 추가해주니 해결되었다.

        • 또한, GameplayAbilities 플러그인이 플러그인 목록에 보이지 않아서 미리 추가해주었는데, 이 부분을 추가하지 않았을 때 문제가 발생했었을지는 모르겠다.
          결과적으로 정상적으로 컴파일 및 빌드가 되고 C++ 클래스가 잘 나타나는 상태의 uproject 파일은 아래와 같았다.

          {
          	"FileVersion": 3,
          	"EngineAssociation": "5.2",
          	"Category": "",
          	"Description": "",
          	"Modules": [
          		{
          			"Name" : "Aura",
          			"Type": "Runtime",
          			"LoadingPhase": "Default",
          			"AdditionalDependencies": [
          				"Engine"
          			]
          		}
          	],
          	"Plugins": [
          		{
          			"Name": "ModelingToolsEditorMode",
          			"Enabled": true,
          			"TargetAllowList": [
          				"Editor"
          			]
          		},
          		{
          			"Name": "GameplayAbilities",
          			"Enabled": true
          		}
          	]
          }
      • 위의 과정 이후 결과적으로 프로젝트 에디터가 다시 정상적으로 잘 실행되었는데, 그럼에도 기본 레벨 (StartupMap) 에 배치했던 포스트 프로세스 볼륨이나 BP_Goblin, PlayerStart같은 액터들은 사라져 있었고, 프로젝트 설정의 Stencil 관련 설정이나, 캐릭터 스켈레탈 메시들의 Socket 설정 (Socket 유무/이름 설정) 등은 사라져 있었다.
        해당 내용들은 Content 저장되는 것이 아니라 Saved나 다른 폴더에 저장되는 내용인 것일까? 혹은 커밋 과정에서 문제가 있던 것일까?
profile
저는 게임 개발자로 일하고 싶어요

0개의 댓글