본문 바로가기
Unreal Engine 5

언리얼 엔진 5에서 잘못 지은 클래스명 변경하기

by 니키티스 2025. 11. 28.
  1. 파일 탐색기에서 파일 이름을 바꾼다.
  2. Uproject file을 우클릭하여 “Generate Visual Studio Project Files”를 누른다.
  3. VS 열어서 generated.h 파일, include 등등을 모두 새로운 파일명으로 바꿔준다.
 
그런데 흔히 여러 블로그들에서 찾을 수 있는 변경 방법이 있다.
대부분, generated.h 파일을 찾아서 바꿀 필요 없이, 간단히 해당 파일 내에서 클래스 네이밍을 바꾼 후, Generate Visual Studio를 해주면 끝이라고 한다.
사실상 바꾼 후에 vs file을 생성하는지, vs file을 생성한 후 데이터를 바꿀지의 차이 같다.
이상하게 둘 다 조금씩 시키는 게 다른 거 같아서, 한 번 둘 다 해보기로 했다.
 
결론부터 말하자면, 가장 편한 방법은 2번 방법이다.

한번 두 개의 차이를 살펴보자.

 

1. 파일 이름 바꾸기 전략

우선 첫 번째 방법, 파일 이름부터 바꾸기 방법.

(1) 우선, 파일명을 변경한다.

나쁜 이름으로 바꿔보자.
아무것도 안 건드리고 바로 Generate Visual Studio Project Files를 클릭한다.
 
당연하지만 내부 파일은 하나도 안 바뀌었다. 그러니까 대체해주는 작업이 필요하다.

(2) 헤더 파일, cpp 파일의 이름을 모두 새로운 클래스명으로 바꿔준다.

위와 같이 아무것도 안 바뀌기 때문에,
Ctrl+H를 눌러 열 수 있는 변경창. 우하단의 옵션에서 꼭 Current project를 골라야 한다(그래야 프로젝트 전체를 바로 바꾼다!)

(3) VS에서 바꾸기 툴로 Current project 대상으로 모든 클래스명을 새로운 클래스명으로 변경해준다.

Current Project 내의 모든 걸 바꿔준다.

(4) {프로젝트명}\Intermediate\Build\Win64\UnrealEditor\Inc\{프로젝트명}\UHT으로 들어가 generated.h 파일과 gen.cpp 이름을 바꿔준다.

게다가 UHT 폴더 내의 이름도 안 바뀌었기 때문에 직접 바꿔주어야 한다.
이 내부도 마찬가지다.

(5) {프로젝트명}\Intermediate\Build\Win64\UnrealEditor\Inc\{프로젝트명}\UHT의 gen / generated.h 파일의 내용에서 기존 클래스명을 새 클래스명으로 모두 대체해준다.

두 파일 다 싹 클래스 명이 같은 걸 대체해주고 나면, Visual Studio에서 Ctrl+Shift+B로 Build한 후 Ctrl+F5로 실행하여 에디터를 열자.

하나라도 빠트릴 가능성이 높으니, 잘 보고 해주어야 한다.

 

2. Visual Studio에 맡기기(추천)

Visual Studio에게 맡기는 방법은 훨씬 쉽다.

(1) 모든 키워드를 검색해서 바꾼다.

Ctrl+H를 눌러 연다. Ctrl+F를 누른 후 왼쪽의 화살표를 눌러도 된다. Current Project를 고르는 걸 잊지 말기.

(2) 기존 파일명 안 바뀌는 건 똑같으니 cpp, h 모두 바꿔준다.

(3) Generate Visual Studio project files를 눌러 프로젝트 파일을 재생성한다.

프로젝트 파일을 재생성한다.

이게 떠주면 OK.

(4) 마지막으로 Ctrl+Shift+B를 눌러 빌드해준다.

이렇게 하면 아주아주 좋은 점은, generated.h 파일과 gen.cpp를 수정할 필요가 없다는 것.

이렇게 해보면 2번 방법이 훨씬 훨씬 편하다는 걸 알 수 있다.
당연한 결과일 수 있는 게, generated.h와 gen.cpp는 기본적으로 Unreal 프로젝트에서 Intermediate 폴더에 있는 파일이다. 해당 폴더에 있는 파일들은 모두 언리얼 엔진의 빌드를 위해 컴파일/빌드 과정에서 생성하는 파일들이다.
그렇기 때문에 네이밍을 모두 바꾼 후에 Generate Visual studio Project Files를 누르고 Build하게 되면, generated.h와 gen.cpp가 없는 걸 보고 기존에 없는 새로운 클래스를 생성했다고 판단한다. 그렇게 새롭게 gen.cpp 파일과 generated.h를 생성해주게 된다.
이렇게 하면 언리얼의 기존 정책에 따라 generated.h와 gen.cpp를 자동 생성하기 때문에, 훨씬 안전하고 간편하게 클래스명을 바꿀 수 있다.

 

참고 자료

https://forums.unrealengine.com/t/how-to-change-the-name-of-a-c-class/274152

https://coding-hell.tistory.com/86

https://cynthis-programming-life.tistory.com/entry/Ue4-Change-Class-Names-%EC%96%B8%EB%A6%AC%EC%96%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%AA%85-%EC%88%98%EC%A0%95

댓글