레지스트리
SML은 빠르고 쉬운 콘텐츠 관리를 위한 몇 가지 레지스트리 메커니즘을 제공합니다.
모드 키 할당 레지스트리
모드 키 할당 레지스트리
는 몇 가지 기능을 제공하는 블루프린트 함수 라이브러리로, UE의
행동 매핑
및 축 매핑 시스템을 통해 게임에
자신의 키 할당 및 축 할당을 쉽게 추가할 수 있습니다.
새티스팩토리 프로젝트 파일에 직접 접근할 수 없기 때문에, 프로젝트 설정 > 엔진 > 입력 > 할당에 직접 추가할 수는 없으므로, 대신 이 SML 레지스트리를 통해 추가합니다.
모드 사용자는 게임 내 키 할당 화면에서 이러한 키 할당을 편집할 수 있습니다. 당신의 키 할당은 주어진 표시 이름으로 모드 이름과 함께 그룹화되어 표시되며, 설정된 값은 게임 세션 간에 지속됩니다.
키 할당이 블루프린트 에디터 내에서 올바르게 표시되도록 하려면, 여전히 위에서 설명한 할당 섹션에 추가해야 할 수 있습니다.
키 할당이 설정되면, 새로운 노드 대화 상자에 이름을 입력할 때 표시되어야 합니다.
예를 들어, 키 할당을 DocMod.DebugPrint
로 명명했다면,
DocMod.DebugPrint
를 검색하면 DocMod.DebugPrint 행동 이벤트의 노드가 표시됩니다.
RegisterModKeyBind(String 모드참조, InputActionKeyMapping 키매핑, Text 표시이름)
주어진 키 매핑을 등록하고 제공된 모드 참조와 연결합니다.
행동 이름(InputActionKeyMapping
의 일부)은 고유해야 하며
"모드참조." 접두사로 시작해야 다른 모드와의 충돌을 피할 수 있습니다.
이 함수는 행동 이름이 위에서 설명한 접두사로 시작하지 않으면 예외를 발생시킵니다.
같은 이름으로 두 개의 키만 등록할 수 있습니다.
하나는 키보드 행동이어야 하고 다른 하나는 게임패드 행동일 수 있습니다(선택 사항).
RegisterModAxisBind(String 모드참조, InputAxisKeyMapping 양의축매핑, InputAxisKeyMapping 음의축매핑, Text 양의표시이름, Text 음의표시이름)
주어진 축 키 매핑을 등록하고 주어진 모드 참조와 연결합니다.
축 이름(InputAxisKeyMapping
의 일부)은 고유해야 하며
"모드참조." 접두사로 시작해야 다른 모드와의 충돌을 피할 수 있습니다.
이 함수는 축 이름이 위에서 설명한 접두사로 시작하지 않으면 예외를 발생시킵니다.
모든 축 매핑은 동일한 행동 이름을 가져야 합니다.
새티스팩토리는 모든 축 할당이 반대 방향의 2개의 키를 가져야 하며, 제어 옵션에서도 2개의 키로 표시됩니다.
두 쌍의 축 할당만 등록할 수 있습니다.
하나는 키보드 축이어야 하고 다른 하나는 게임패드 축일 수 있습니다(선택 사항).
콘텐츠 태그 레지스트리
자세한 내용은 콘텐츠 태그 레지스트리 페이지를 참조하십시오.
게임 맵 레지스트리
자세한 내용은 게임 맵 레지스트리 페이지를 참조하십시오.
모드 콘텐츠 레지스트리
모드 콘텐츠 레지스트리는 게임 인스턴스 서브시스템으로, 모드 콘텐츠의 등록 및 수명 관리를 담당합니다.
모드로 생성하고 추가하는 모든 지원 유형의 콘텐츠는 이 레지스트리를 통해 등록해야 합니다. 즉, 게임의 서브시스템에 직접 등록해서는 안 됩니다.
이는 콘텐츠가 게임 및 다른 모드에 의해 올바르게 저장되고 로드되며 식별되도록 보장하는 데 필수적입니다.
모드 콘텐츠 레지스트리가 제공하는 동적 동작이 필요하지 않은 경우, 이 객체의 메서드를 직접 호출하는 대신 RootGameWorld_모드참조 모듈 인스턴스의 속성을 사용해야 합니다.
모드 콘텐츠 레지스트리 함수 및 블루프린트에서는 |
도면 및 연구 트리 등록은 BeginPlay에서 동결됩니다. 그 순간 이후로 레지스트리는 동결되며 그 이후에는 변경할 수 없습니다! |
RegisterSchematic(FName 모드참조, TSubclassOf<UFGSchematic> 도면)
도면이 게임에서 사용 가능하도록 등록합니다. 도면에 참조된 모든 제작법은 자동으로 등록됩니다. 등록된 제작법에 참조된 모든 아잍메은 전달된 모드 참조와도 연결됩니다.
또한 콘텐츠가 올바르게 연결될 수 있도록 모드 참조를 제공해야 합니다.
RegisterResearchTree(FName 모드참조, TSubclassOf<UFGResearchTree> 연구트리)
연구 트리를 게임에서 사용 가능하도록 등록합니다. 기준이 충족되면 연구 트리를 즉시 잠금 해제할 수 있도록 업데이트합니다. 이 연구 트리에 참조된 모든 도면은 자동으로 등록됩니다. 노드는 도면에 대해 발견 가능하도록 기본 BPD_ResearchTreeNode 유형이어야 합니다.
또한 콘텐츠가 올바르게 연결될 수 있도록 모드 참조를 제공해야 합니다.
RegisterRecipe(FName 모드참조, TSubclassOf<UFGRecipe> 제작법)
제작법이 게임에서 사용 가능하도록 등록합니다. 이 제작법에 의해 참조된 항목이 다른 모드 참조와 연결되지 않은 경우, 전달된 모드 참조와도 연결됩니다.
또한 콘텐츠가 올바르게 연결될 수 있도록 모드 참조를 제공해야 합니다.
RegisterResourceSinkItemPointTable(FName 모드참조, UDataTable* 점수테이블, EResourceSinkTrack 트랙)
전달된 테이블 객체의 각 아이템 행에 대한 자원 싱크 아이템 점수를 등록합니다.
또한 콘텐츠가 올바르게 연결될 수 있도록 모드 참조를 제공해야 합니다.
GetObtainableItemDescriptors(TArray<FGameObjectRegistration>& 출력아이템디스크립터, EGetObtainableItemDescriptorsFlags 플래그)
모든 획득 가능한 아이템 디스크립터의 목록을 검색합니다. 예를 들어, 제작법에 의해 참조된 것입니다.
결과를 추가로 필터링하려면 플래그를 사용하십시오.
FGameObjectRegistration GetResearchTreeRegistrationInfo(TSubclassOf<UFGResearchTree> 연구트리)
주어진 연구 트리의 등록 정보를 반환합니다.
FGameObjectRegistration GetSchematicRegistrationInfo(TSubclassOf<UFGSchematic> 도면)
주어진 도면의 등록 정보를 반환합니다.
FGameObjectRegistration GetItemDescriptorInfo(TSubclassOf<UFGItemDescriptor> 아이템디스크립터)
주어진 아이템 디스크립터의 등록 정보를 반환합니다.
bool IsItemDescriptorVanilla(TSubclassOf<UFGItemDescriptor> 아이템디스크립터)
주어진 아이템 디스크립터가 바닐라로 간주될 때 true를 반환합니다.