콘텐츠로 이동

개요

NP Editor 는 C# 플러그인으로 기능을 더할 수 있습니다. 플러그인은 dll 하나와 plugin.json 하나로 된 폴더입니다. 플러그인은 SDK(NP.Editor.Sdk.dll) 하나만 참조합니다. Godot 이나 에디터 내부 코드는 몰라도 됩니다.

이 문서는 SDK 1.3.0 기준입니다. 지금 에디터의 SDK 판은 도구 › 플러그인 관리자… 창 머리에 SDK 1.3.0 처럼 나옵니다.

붙이는 곳에디터 화면등록점SDK
메뉴 항목메뉴 막대(파일 · 편집 · 창 · 도구 · 빌드 · 도움말, 새 이름 = 새 메뉴)AddMenuItem1.0
빠른 추가메인 툴바 「추가」(검색 · 분류 · 아이콘)AddQuickAddItem1.0
콘솔 명령아래 「콘솔」 패널AddCommand1.0
가져오기 · 내보내기파일 › 가져오기: … · 빌드 › 내보내기: …AddImporter · AddExporter1.0
패널아래 영역의 패널(창 메뉴에서 열기)AddContentTab + NpUi1.0
모드메인 툴바 모드 줄 + 도구 패널 + 뷰포트 클릭AddMode1.0
액터 타입아웃라이너 「타입」 칸의 글자 · 색AddActorType1.0
칸 지킴이 · 대칭모든 블록 편집에 끼어듦AddCellGuard · AddSymmetry1.0
화면 검증 시나리오--np-shot=<id> 자동 스크린샷 · 검사(에디터 개발용 빌드)AddShotScenario1.0
단축키도구 › 단축키…(사용자가 바꿀 수 있음)AddShortcut1.1
설정 저장플러그인마다 JSON 파일 하나host.Settings1.1
3D 겹쳐 그리기뷰포트 위 선 · 상자 · 글자host.Draw1.1
월드 로직 type월드 로직 · 로직 그래프 · 검사 · MCP · 플레이 미리보기AddSceneEvent1.2
씬 액터 읽기 · 플레이 카메라씬 액터 목록, 플레이 중 카메라host.Scene · host.View1.3

월드도 읽고 씁니다(host.World). 블록 상태 글은 마인크래프트 형식(minecraft:oak_stairs[facing=east])입니다. World.Edit 한 번이 되돌리기 한 단계입니다.

외부 플러그인과 내장 플러그인

섹션 제목: “외부 플러그인과 내장 플러그인”
외부 플러그인 (이 문서의 대상)내장 플러그인
어디에플러그인 폴더 안의 폴더 하나에디터 안
참조NP.Editor.Sdk.dll 하나에디터 내부 코드
켜기 · 끄기플러그인 관리자에서, 에디터를 끄지 않고늘 켜짐
오류그 플러그인만 격리, 에디터는 계속에디터와 함께 고침
호환SDK 판(semver)으로 보장에디터 판과 같음

에디터의 기본 기능(블록 브러시 · 랜드스케이프 · 월드 로직 등)도 같은 등록 구조의 내장 플러그인입니다. 내장 플러그인은 외부에 공개하지 않는 등록점(보기 모드 · 뷰포트 끌기 · 패널 영역 고르기 등)도 씁니다. 이 문서는 외부 플러그인만 다룹니다.

내 플러그인.dll ──참조──> NP.Editor.Sdk.dll (인터페이스 · 자료형)
│
플러그인 호스트 (plugin.json 검사 · SDK 판 비교 · 로드 컨텍스트 · 오류 격리)
│
NP Editor (메뉴 · 모드 · 패널 · 월드 로직 · 뷰포트)
층하는 일
내 플러그인 dllINpEditorPlugin.Register(host) 에서 등록점을 부릅니다.
NP.Editor.Sdk.dll인터페이스와 자료형만 있습니다. 에디터가 같은 파일을 이미 올려 두고 플러그인과 나눠 씁니다.
플러그인 호스트plugin.json 을 검사하고 SDK 판을 비교합니다. 플러그인마다 따로 로드 컨텍스트를 만들고, 플러그인 코드의 예외를 잡아 그 플러그인만 끕니다.
에디터등록된 것을 메뉴 · 툴바 · 패널 · 월드 로직에 붙입니다. 끄면 모두 뗍니다.

등록한 것에는 에디터 안에서 ext.<플러그인 id>. 접두어가 붙습니다. 그래서 내장 기능이나 다른 플러그인과 이름이 겹치지 않습니다. 콘솔 명령 이름과 월드 로직 type 은 예외입니다. 자세한 내용은 불러오기와 수명에 있습니다.

항목값
에디터NP Editor 0.9.1 이상(SDK 1.3). SDK 1.2 까지만 쓰면 0.9.0 도 됩니다.
.NET.NET 8 SDK (dotnet --version 이 8. 이상)
언어C# 12 (net8.0 대상)
편집기아무 C# 편집기(Visual Studio · Rider · VS Code)
SDK dll에디터 설치 폴더의 data_NPEditor_windows_x86_64\NP.Editor.Sdk.dll

에디터 기본 설치 폴더는 %LOCALAPPDATA%\Programs\NP Editor 입니다.

보안: 플러그인은 서명 검사 없이 에디터와 같은 권한으로 실행되는 코드입니다. 직접 만들었거나 믿을 수 있는 곳에서 받은 플러그인만 넣습니다. 자세한 내용은 배포와 버전에 있습니다.

하고 싶은 것문서
10분 만에 첫 플러그인 만들기빠른 시작
plugin.json 칸 알기plugin.json
켜기 · 끄기 · 오류 격리가 도는 방식불러오기와 수명
월드 읽기 · 쓰기, 이벤트, 설정, 3D 그리기호스트 API
메뉴 · 모드 · 명령 등 등록점 전부등록점
패널 UI 만들기패널 UI(NpUi)
월드 로직에 트리거 · 조건 · 동작 더하기월드 로직 type 추가
플레이 중 카메라 연출씬 읽기와 플레이 카메라
시험 · 디버그테스트와 디버그
남에게 나눠 주기배포와 버전
오류가 날 때문제 해결
SDK 판마다 바뀐 것SDK 변경 내역
예제 소스예제: hello_tool · 예제: csv_export · 예제: event_example