Files
DS-Asset_Export_to_JSON/MERGE_INSTRUCTIONS.md
jinilkim e988c90e2e 문서를 한국어로 변경
모든 MD 문서(README.md, MERGE_INSTRUCTIONS.md)를 한국어로 번역
- 기능 설명, 설치 방법, 사용 가이드 한국어화
- 기술 세부사항 및 문제 해결 섹션 한국어화
- 병합 가이드 및 롤백 방법 한국어화
2025-10-22 15:19:43 +09:00

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 메뉴 통합 구현

병합 후 테스트

  1. WorldStalkerEditor 모듈 리빌드
  2. 언리얼 에디터 실행
  3. 툴 → WorldStalker → Export Assets to JSON 메뉴로 이동
  4. 편집 → 프로젝트 설정 → 플러그인 → Asset Export to JSON에서 설정 구성
  5. 익스포트 실행 후 Content/Exports/에 JSON 파일이 생성되었는지 확인

롤백 방법

이 기능을 제거해야 하는 경우:

  1. 새로 추가된 4개 파일 삭제:

    • AssetExportSettings.h
    • AssetExportSettings.cpp
    • AssetExporterToJSON.h
    • AssetExporterToJSON.cpp
  2. WorldStalkerEditor.h에서 변경사항 제거:

    • 두 개의 메서드 선언 삭제
  3. WorldStalkerEditor.cpp에서 변경사항 제거:

    • #include "Utility/AssetExporterToJSON.h" 줄 제거
    • StartupModule()에서 UToolMenus 등록 제거
    • ShutdownModule()에서 UToolMenus 정리 제거
    • 두 개의 메서드 구현 삭제
  4. 모듈 리빌드


연락처

변경사항 병합에 대한 질문: