모든 MD 문서(README.md, MERGE_INSTRUCTIONS.md)를 한국어로 번역 - 기능 설명, 설치 방법, 사용 가이드 한국어화 - 기술 세부사항 및 문제 해결 섹션 한국어화 - 병합 가이드 및 롤백 방법 한국어화
6.1 KiB
6.1 KiB
기존 파일 병합 가이드
이 문서는 기존 WorldStalkerEditor 모듈 파일에 병합해야 하는 변경사항을 설명합니다.
개요
Asset Export to JSON 기능은 기존 파일에 대한 최소한의 수정만 필요합니다:
- WorldStalkerEditor.h: private 메서드 선언 2개 추가
- WorldStalkerEditor.cpp: include 지시문 추가 및 메뉴 등록 구현
파일: WorldStalkerEditor.h
변경 위치
18-20줄 (기존 private 멤버 변수 다음)
추가할 변경사항
private:
void RegisterMenuExtensions();
void AddToolbarMenuEntry(class FMenuBuilder& MenuBuilder);
완전한 수정 섹션
class FWorldStalkerEditorModule : public IModuleInterface
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
private:
// 이 두 줄을 추가하세요:
void RegisterMenuExtensions();
void AddToolbarMenuEntry(class FMenuBuilder& MenuBuilder);
TSharedPtr<class FUICommandList> PluginCommands;
TSharedPtr<class FDataTableNoticeListener> DataTableListener;
TSharedPtr<class FObjectSaveEventListener> ObjectSaveEventListener;
};
참고: AddToolbarMenuEntry 메서드는 하위 호환성을 위해 유지되지만 실제로는 사용되지 않습니다.
파일: WorldStalkerEditor.cpp
변경 1: Include 지시문 추가
위치: 4줄 (기존 include 다음)
이 줄을 추가:
#include "Utility/AssetExporterToJSON.h"
완전한 Include 섹션:
#include "WorldStalkerEditor.h"
#include "DataTable/DataTableNoticeListener.h"
#include "Asset/ObjectSaveEventListener.h"
#include "Utility/AssetExporterToJSON.h" // 이 줄을 추가하세요
#include "ToolMenus.h"
변경 2: StartupModule에서 메뉴 확장 등록
위치: StartupModule() 메서드 내부 (기존 초기화 다음)
이 줄들을 추가:
// Register editor menu extensions
UToolMenus::RegisterStartupCallback(FSimpleMulticastDelegate::FDelegate::CreateRaw(this, &FWorldStalkerEditorModule::RegisterMenuExtensions));
완전한 StartupModule 메서드:
void FWorldStalkerEditorModule::StartupModule()
{
DataTableListener = MakeShared<FDataTableNoticeListener>();
ObjectSaveEventListener = MakeShared<FObjectSaveEventListener>();
// 이 두 줄을 추가하세요:
// Register editor menu extensions
UToolMenus::RegisterStartupCallback(FSimpleMulticastDelegate::FDelegate::CreateRaw(this, &FWorldStalkerEditorModule::RegisterMenuExtensions));
}
변경 3: ShutdownModule에서 정리
위치: ShutdownModule() 메서드 내부 (기존 정리 코드 다음)
이 줄들을 추가:
// Unregister all tool menus
UToolMenus::UnRegisterStartupCallback(this);
UToolMenus::UnregisterOwner(this);
완전한 ShutdownModule 메서드:
void FWorldStalkerEditorModule::ShutdownModule()
{
DataTableListener.Reset();
ObjectSaveEventListener.Reset();
// 이 두 줄을 추가하세요:
// Unregister all tool menus
UToolMenus::UnRegisterStartupCallback(this);
UToolMenus::UnregisterOwner(this);
}
변경 4: 새 메서드 구현 추가
위치: ShutdownModule() 메서드 다음 (#undef LOCTEXT_NAMESPACE 전)
이 두 메서드 전체를 추가:
void FWorldStalkerEditorModule::RegisterMenuExtensions()
{
UToolMenu* ToolsMenu = UToolMenus::Get()->ExtendMenu("LevelEditor.MainMenu.Tools");
if (!ToolsMenu)
{
return;
}
FToolMenuSection& Section = ToolsMenu->FindOrAddSection("WorldStalkerTools");
Section.Label = LOCTEXT("WorldStalkerToolsSection", "WorldStalker");
Section.AddMenuEntry(
"ExportAssetsToJSON",
LOCTEXT("ExportAssetsToJSON", "Export Assets to JSON"),
LOCTEXT("ExportAssetsToJSONTooltip", "Export DataTable, Blueprint, AnimMontage, and CurveTable assets to JSON format for LLM analysis"),
FSlateIcon(FAppStyle::GetAppStyleSetName(), "LevelEditor.Tabs.StatsViewer"),
FUIAction(FExecuteAction::CreateStatic(&FAssetExporterToJSON::ExportAssetsToJSON))
);
}
void FWorldStalkerEditorModule::AddToolbarMenuEntry(FMenuBuilder& MenuBuilder)
{
// This method is no longer used but kept for backward compatibility
}
빌드 설정
WorldStalkerEditor.Build.cs에 다음 의존성이 포함되어 있는지 확인하세요:
PublicDependencyModuleNames.AddRange(new string[] {
"AssetRegistry",
"Json",
"JsonUtilities"
});
PrivateDependencyModuleNames.AddRange(new string[] {
"UnrealEd",
"Engine",
"Slate",
"SlateCore",
"ToolMenus",
"DeveloperSettings"
});
참고: 이러한 의존성의 대부분은 이미 모듈에 존재할 가능성이 높습니다. 누락된 것만 추가하세요.
변경사항 요약
WorldStalkerEditor.h
- 추가된 줄: 메서드 선언 2개
- 목적: 메뉴 등록 메서드 선언
WorldStalkerEditor.cpp
- 추가된 줄:
- include 지시문 1줄
- StartupModule()에 2줄
- ShutdownModule()에 2줄
- 메서드 구현 2개 전체 (~24줄)
- 총: ~29줄 추가
- 목적: Tools 메뉴 통합 구현
병합 후 테스트
- WorldStalkerEditor 모듈 리빌드
- 언리얼 에디터 실행
툴 → WorldStalker → Export Assets to JSON메뉴로 이동편집 → 프로젝트 설정 → 플러그인 → Asset Export to JSON에서 설정 구성- 익스포트 실행 후
Content/Exports/에 JSON 파일이 생성되었는지 확인
롤백 방법
이 기능을 제거해야 하는 경우:
-
새로 추가된 4개 파일 삭제:
AssetExportSettings.hAssetExportSettings.cppAssetExporterToJSON.hAssetExporterToJSON.cpp
-
WorldStalkerEditor.h에서 변경사항 제거:- 두 개의 메서드 선언 삭제
-
WorldStalkerEditor.cpp에서 변경사항 제거:#include "Utility/AssetExporterToJSON.h"줄 제거- StartupModule()에서 UToolMenus 등록 제거
- ShutdownModule()에서 UToolMenus 정리 제거
- 두 개의 메서드 구현 삭제
-
모듈 리빌드
연락처
변경사항 병합에 대한 질문:
- 작성자: jinilkim@oneunivrs.com
- 프로젝트: WorldStalker (DungeonStalkers)
- 모듈: WorldStalkerEditor