관리 메뉴

기억을 위한 기록들

[UECPP] 클래스이름 변경할때 블루프린트 애셋이 상속받고 있을 경우 본문

UnrealEngine/UnrealEngine C++ 관련

[UECPP] 클래스이름 변경할때 블루프린트 애셋이 상속받고 있을 경우

에드윈H 2023. 2. 10. 21:28

A 라는 이름의 c++ 클래스를 사용하고 있을때, 이름을 B로 바꾸는건 코드에서는 크게 어렵지 않습니다…그런데 문제는

A 라는 클래스를 블루프린트에서 BP_A 라는 애셋이 상속받는 경우가 있는데, 코드에서 클래스 이름을 B로 바꿀 경우 BP_A가 깨져서 안열릴수도 있습니다.

 

그럴경우 Config/DefaultEngine.ini 파일에서

 
1[/Script/Engine.Engine] 
ActiveClassRedirects=(OldClassName="/Script/<ProjectName>.<OldClassName>",NewClassName="/Script/<ProjectName>.<NewClassName>")

위와 같은 양식으로 추가해주면되는데,

 

 

 

예를 들어 World 프로젝트에서 A클래스 이름을 B로 바꿀 경우,

 
[/Script/Engine.Engine] ActiveClassRedirects=(OldClassName="/Script/ProjectA.MyActor,NewClassName="/Script/ProjectA.YourActor")​

이런식으로 추가 지정해주면 C++ 클래스 이름으로 A->B로 바꾸고, 에디터를 열어도 BP_A 라는 애셋은 깨지지 않고 B클래스를 상속받고 있다고 뜨면서 잘 열립니다

 

 

 

단점 : 변경 적용 후 에디터 검색 기능 “parentclass:b” 라고하면 바로 검색되지 않고, 그 애셋을 한번 열어봐야 “parentclass:b”가 적용됨. 그러므로 바뀌기 전 “parentclass:a”로 바뀐 애셋들을 열어봐야 검색적용됨

 

 

참고 :

How to Rename a UE4 or UE5 C++ Class Used by Blueprints