해결된 질문
작성
·
183
·
수정됨
0
안녕하세요?
6.1 Teleport 강의에서 50:22 부분에 궁금한게 있는데요.
Asset Manager가 L_ShooterGym을 스캔할 수 있도록 경로를 설정하는 건데, "Is Editor Only" 이 부분은 왜 체크해야 하나요..? 이 부분이 어떤 기능을 하는 것인지 궁금합니다.
이걸 체크하지 않으니 DA_ShooterGame_ShooterGym의 MapID에 L_ShooterGym가 목록으로 표시되질 않네요. (설정 적용 후에 스캔을 위한 에디터 재실행은 했습니다. 엔진 버전은 5.4입니다.)
FPrimaryAssetTypeInfo 구조체의 bIsEditorOnly 멤버 변수와, UAssetManager의 ScanPathsForPrimaryAssets() 멤버 함수가 이 기능과 관련있어 보이는데 코드를 봐도 잘 이해가 안되네요...
답변 2
1
Editor Only를 체크하면 해당 자산이 에디터 전용으로 인식되어, AssetManager가 에디터에서도 사용할 수 있도록 등록하게 됩니다.
반대로 체크하지 않으면 패키징된 환경에서만 등록되며, 에디터에서는 스캔되지 않습니다.
현재 저희는 에디터에서 테스트를 진행 중이므로, 이 옵션을 체크하지 않으면 자산이 스캔되지 않습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김태일(TIK)님.
Asset Manager에서 “Is Editor Only” 옵션에 대한 질문을 주셨군요. 이 옵션의 기능과 관련 내용에 대해 설명드리겠습니다.
“Is Editor Only” 옵션의 의미:
1. 에디터 전용: “Is Editor Only” 옵션이 체크된 경우, 해당 자산은 게임 실행 시가 아닌 에디터에서만 인식되도록 하는 설정입니다. Unreal Engine에서는 게임 파일의 크기를 줄이고 불필요한 자산이 게임에 포함되지 않도록 하는 용도로 사용됩니다.
bIsEditorOnly 구현에 관한 오해:
- ScanPathsForPrimaryAssets
함수 구현상에서 “Is Editor Only”가 체크된 자산은 GIsEditor
가 참인 경우에만 불러와집니다. 즉, 에디터에서만 해당 자산이 스캔 및 관리되며, 게임 런타임 시에는 무시되도록 하는 기능을 발휘합니다.
따라서, 체크했을 때도 스캔할 수 있는 이유는 위 조건에 따라 에디터 환경이기 때문이며, 실제 게임 플레이에는 이 자산이 포함되지 않기 위한 방어적인 설정이라고 이해할 수 있습니다.
더욱 자세한 내용은 아래 링크에서 관련 토론을 참고해보시면 도움이 될 수 있습니다:
- Unreal Engine Documentation - Asset Manager
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아하 답변감사합니다.
혼자 코드보면서 이해했던게 대충 맞았던것 같네요.
PS.
번외로, 오늘 ScanPathsForPrimaryAssets() 구현을 다시 보면서 현재 이 프로젝트에서는 왜 Primary Asset Type이 Map인 애는 왜 반드시 "Is Editor Only" 이거를 체크해야 하는지 다른 이유도 알게됬습니다.
에셋 매니저가 각 에셋을 스캔하는 순서가 [ScanPathsForPrimaryAssets()]
1. 프로젝트 세팅에서 설정한 에셋 매니저
2. 각 게임피쳐데이터에서 설정한 에셋 매니저
이렇게인데 ,
1. 프로젝트 세팅에서 설정한 에셋 매니저의 Map이 먼저 "Is Editor Only"가 true인 채로 AssetTypeMap에 먼저 추가됨 (위 그림의 1번 부분)
2. 만약, 게임피쳐데이터 쪽에서 Map에 "Is Editor Only"를 체크안하면 위 그림의 2번 부분 때문에 정보가 추가되지 않음
이래서 스캔이 안되었습니다.