[언리얼 엔진] 코어 리디렉트

    코어 리디렉트

    개발도중 클래스, 프로퍼티, 함수, 이름 등을 변경해야할 경우가 있을때, 코어 리디렉트(Core Redirect)를 사용하여 문제를 해결한다. DefaultEngine.ini 파일에 구성된다.(플러그인은 플러그인이름.ini파일) [CoreRedirects]섹션에 배치된다.

    지원하는 코어 리디렉트 유형

    ClassRedirects

    폐기된 기존 UClass를 새 UClass를 가리키도록 변경

    • OldName = (필수)폐기된 UClass 이름
    • NewName = (필수)새 UClass 이름
    • MatchSubstring = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    • OverrideClassName = (옵션)true인 경우 이전 클래스의 기존 인스턴스는 새 클래스로 리매핑을 해야한다.
    • ValueChanges = (옵션)이전 클래스의 인스턴스 이름을 변경, 2번째 인자는 새로운 이름
    [CoreRedirects]
    +ClassRedirects=(OldName="Pawn",NewName="MyPawn",InstanceOnly=true)
    +ClassRedirects=(OldName="/Script/MyModule.MyOldClass",NewName="/Script/MyModule.MyNewClass")
    +ClassRedirects=(OldName="PointLightComponent",NewName="PointLightComponent",ValueChanges=(("PointLightComponent0","LightComponent0")))
    +ClassRedirects=(OldName="AnimNotify_PlayParticleEffect_C",NewName="/Script/Engine.AnimNotify_PlayParticleEffect",OverrideClassName="/Script/CoreUObject.Class")

    EnumRedirects

    폐기된 UENUM의 유형이나 폐기된 값을 리매핑 한다.

    • OldName = (필수)NewName이 있으면 해당 이름으로 리매핑되고, ValueChanges가 있으면 해당 값이 변경되는 대상
    • NewName = (옵션)OldName의 새로운 이름
    • MatchSubString = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    • ValueChanges = (필수)목록으로 변경할 수 있으며 1번째 인자는 기존 값, 2번째 인자는 새로운 값
    [CoreRedirects]
    +EnumRedirects=(OldName="ENumbers",NewName="ELetters",ValueChanges=(("NumberTwo","LetterB"),("NumberThree","LetterC"))

    FunctionRedirects

    폐기된 UFUNCTION을 리매핑 한다.

    • OldName = (필수)폐기된 UFUNCTION 이름
    • NewName = (필수)새로운 UFUNCTION 이름
    • MatchSubstring = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    [CoreRedirects]
    +FunctionRedirects=(OldName="MyOldActor.OldFunction",NewName="MyNewActor.NewFunction")
    +FunctionRedirects=(OldName="MyActor.OldFunction",NewName="NewFunction")

    PackageRedirects

    다른패키지로 리매핑하거나 삭제된 패키지로의 레퍼런스 경고를 표시하지 않도록 설정 한다.

    • OldName = (필수)폐기된 패키지 이름
    • NewName = (옵션)리매핑할 새로운 패키지 이름. 존재하지 않으려면 Removed가 true여야 한다.
    • MatchSubstring = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    • Removed = (옵션)true인 경우 패키지를 제거한다. 경고나 오류를 생성하지 않고 레퍼런스르 null로 설정
    [CoreRedirects]
    +PackageRedirects=(OldName="OldPlugin",NewName="/NewPlugin/",MatchSubstring=true)
    +PackageRedirects=(OldName="/Game/DeletedContentPackage",Removed=true)

    PropertyRedirects

    제거된 프로퍼티를 새 프로퍼티로 리매핑한다.

    • OldName = (필수)제거된 프로퍼티 이름
    • NewName = (필수)새 프로퍼티 이름
    • MatchSubstring = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    [CoreRedirects]
    +PropertyRedirects=(OldName="MyOldActor.OldIntProperty",NewName="MyNewActor.NewIntProperty")
    +PropertyRedirects=(OldName="MyActor.OldFloatProperty",NewName="NewFloatProperty")

    StructRedirects

    폐기된 USTRUCT를 리매핑 한다.

    • OldName = (필수)폐기된 USTRUCT 이름
    • NewName = (필수)새 USTRUCT 이름
    • MatchSubstring = (옵션)true인 경우 OldName이 부분문자열로 일치해도 동작
    [CoreRedirects]
    +StructRedirects=(OldName="MyStruct",NewName="MyNewStruct")

    서브스트링 일치

    모든 코어 리디렉트에는 MatchSubstring 인수가 있다. 서브스트링이 일치한 여러개의 항목을 변경할때 유용하지만 애셋을 철저히 검사하므로 시작 시간이 느릴 수 있다. 임시 수정용도 이기 때문에 해당 애셋들은 즉시 다시 저장해서 소스컨트롤에 올리고 코어 리디렉트는 지우도록 권장한다.

    반응형

    댓글

    Designed by JB FACTORY