인프런 커뮤니티 질문&답변

qnvudch03님의 프로필 이미지

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

2강 캐릭터와 입력 시스템

2강 [14:38] 레퍼런스 경로 가져오기 질문드립니다.

작성

·

21

0

안녕하세요,

1강에서 ConstructorHelpers로 find class 할 때는, 에셋 경로 위치에서 /Game 전에 있는 경로는 지우고 데이터를 읽어 왔습니다.

이번에 2강에선 find object할 때 는 따로 경로를 수정하지 않으시더라구요.

 

둘다 인자로 받는것도 TEXT 주소값이고, 컴파일 과정에서는 에러 안나는거보면 엔진이 초기화 되다가 일어나는 문제인데

 

'/Game' 앞에 있는 저 경로가 ConstructorHelpers에 find object / class를 사용 함에 있어서 어떤 영향을 주고 왜 다르게 써야 하는지 궁금합니다.

 

감사합니다.

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

경로를 사용할 때 타입을 명시하는게 정석이긴 한데, 이렇게 형을 명시적으로 지정하는경우 가끔 캐스팅이 안되는 경우가 발생합니다. 대표적인 것이 애니메이션 블루프린트인데요, 어짜피 명시적으로 지정하지 않아도 내부에서 해당 타입으로 형변환을 자동으로 해주기 때문에 타입 없는 경로만 써도 무방합니다.
학습적으로는 전체 경로 형식을 알려드려야 할 것 같아서, 초반 수업은 그렇게 진행했다고 이해해주시면 될 것 같아요.

0

안녕하세요, 인프런 AI 인턴입니다.

언리얼 엔진에서 ConstructorHelpers::FObjectFinderConstructorHelpers::FClassFinder를 사용할 때 경로 지정이 중요한 이유는 Unreal 에디터와 엔진의 자원 로딩 방식 때문입니다. 언리얼 엔진에서는 경로의 지정에 유의해야 합니다. 특히 '/Game'은 필수로 포함되어야 하는 경로 부분입니다.

경로의 차이

  1. FObjectFinderFClassFinder의 차이점:

    • FObjectFinder는 시스템 리소스나 블루프린트와 같은 객체를 찾을 때 사용되며, '/Game'을 포함한 전체 경로를 요구합니다. 이 객체들은 에디터를 통해 관리되므로 명확한 절대 경로가 필요합니다.
    • FClassFinder는 클래스 타입을 찾기 위해 사용됩니다. 이 경우, _C 접미사를 사용하여 클래스 객체임을 지정하며, 클레스 경로에서는 /Game 대신 간단한 이름만으로도 동작할 수 있는 이유는 엔진이 특정 프로젝트 경로를 미리알기 때문입니다.
  2. 경로 명시에서의 차이점:

    • '/Content'를 시작으로 경로를 작성할 때는 ‘/Game’으로 대체해야 합니다. 실행 시간에 실제 리소스의 경로는 ‘/Game’을 기준으로 찾기 때문입니다.
    • 클래스나 오브젝트를 찾는 메커니즘에서의 엔진 초기화 시점에서 다르게 처리되어 혼선이 생길 수 있습니다.

위 개념들을 기반으로 경로를 설정하면, 왜 특정 조건에서 /Game을 사용해야 하는지, 그리고 ConstructorHelpers의 사용 에러를 방지할 수 있습니다.

아래의 링크는 ConstructorHelpers 사용과 관련된 심도 있는 토론을 포함하는 문서입니다. 이 자료는 경로 문제와 관련된 추가적인 힌트를 제공할 수 있습니다:

이 자료를 참조하여, 프로젝트 내 경로 설정 및 ConstructorHelpers의 올바른 사용 방법을 확인해 보세요. 추가적으로 다른 질문이 있으시면, 주저하지 말고 질문해 주세요. 도움을 더 드릴 수 있도록 노력하겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.