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”로 바뀐 애셋들을 열어봐야 검색적용됨
참고 :