배포와 버전
플러그인은 폴더 하나로 나눠 줍니다. 받는 사람은 그 폴더를 플러그인 폴더에 넣고 플러그인 관리자에서 켭니다.
넣을 파일
섹션 제목: “넣을 파일”| 파일 | 넣나 | 설명 |
|---|---|---|
plugin.json | 예 | 폴더 바로 아래 |
| 내 dll | 예 | plugin.json 의 dll 경로 |
| 내가 쓰는 다른 dll(NuGet 패키지 등) | 예 | 내 dll 옆. 빌드 출력의 .deps.json 도 함께 넣습니다. |
.pdb | 선택 | 오류 위치(줄 번호)가 로그에 나옵니다. |
NP.Editor.Sdk.dll | 아니요 | 에디터 것을 씁니다. csproj 에서 Private=false 로 빼 둡니다. |
| 큰 데이터 | 선택 | 폴더 안에 두고 host.PluginDir 로 찾습니다. |
road_tools\├─ plugin.json├─ RoadTools.dll├─ RoadTools.deps.json├─ RoadTools.pdb└─ data\ └─ presets.jsondotnet build -c Release 출력 폴더에서 위 파일을 골라 압축합니다. 받는 사람에게 다음을 알려 줍니다.
- 압축을 풀어
road_tools폴더를 플러그인 폴더(도구 › 플러그인 폴더 열기)에 넣습니다. - 도구 › 플러그인 관리자… 에서 「다시 훑기」를 누릅니다.
- 처음이면 보안 경고에서 「믿을 수 있음 — 불러오기」를 누릅니다.
에디터 설치 폴더 아래 plugins\ 폴더에 넣어도 에디터가 읽습니다.
내 판 번호 (version)
섹션 제목: “내 판 번호 (version)”plugin.json 의 version 은 semver(major.minor.patch)로 올립니다. 플러그인 관리자의 「버전」 칸에 보입니다.
| 바꾼 것 | 올릴 자리 | 예 |
|---|---|---|
| 버그만 고침 | patch | 1.2.0 → 1.2.1 |
| 기능을 더함(저장 형식 · 명령은 그대로) | minor | 1.2.1 → 1.3.0 |
| 명령 이름 · 월드 로직 type · 설정 키 · 저장 형식을 바꿈 | major | 1.3.0 → 2.0.0 |
- 월드 로직
Type과 칸Name은 맵 파일(scene.json)에 저장됩니다. 바꾸면 옛 맵의 규칙이 「모르는 type」이 됩니다. id는 바꾸지 않습니다. 설정 파일 · 사용자가 바꾼 단축키가id로 저장됩니다.
sdk 범위
섹션 제목: “sdk 범위”sdk 는 실제로 쓰는 기능의 최소 판으로 씁니다.
| 쓰는 것 | sdk | 돌아가는 에디터 |
|---|---|---|
| SDK 1.0 기능만 | ^1.0 | SDK 1.0 ~ 1.x 모두 |
Settings · Draw · AddShortcut | ^1.1 | SDK 1.1 ~ 1.x |
AddSceneEvent | ^1.2 | SDK 1.2 ~ 1.x(에디터 0.9.0 이상) |
Scene · View · ActorList | ^1.3 | SDK 1.3 ~ 1.x(에디터 0.9.1 이상) |
- 너무 높게 쓰면 옛 에디터 사용자가 못 씁니다.
- 너무 낮게 쓰면 옛 에디터에서 불러오다 없는 멤버 때문에 실패합니다(「버전 안 맞음」).
- 위 끝 없는 범위(
>=1.0)는 쓰지 않습니다. 다음 major 에서 깨진 채로 불러올 수 있습니다.
SDK 호환 약속
섹션 제목: “SDK 호환 약속”| 약속 | 내용 |
|---|---|
| 같은 major 안 | 형식 · 멤버를 더하기만 합니다. 이름을 바꾸거나 빼지 않습니다. |
| 새 칸 | 기본값이 있는 끝 칸으로 더합니다. 옛 코드는 그대로 컴파일됩니다. |
| 깨는 변경 | major 를 올립니다(2.0). ^1.x 플러그인은 「버전 안 맞음」으로 안전하게 멈추고 에디터는 계속 돕니다. |
| 동작 | 같은 major 안에서 등록점의 뜻을 바꾸지 않습니다. |
판별 변경은 SDK 변경 내역에 있습니다.
플러그인은 서명 검사 없이 이 컴퓨터에서 에디터와 같은 권한으로 실행되는 코드입니다.
| 막는 것 | 막지 못하는 것 |
|---|---|
| 플러그인 코드의 예외 → 그 플러그인만 끔(격리) | 무한 루프 · 스택 넘침 · 프로세스 종료 |
| 끈 플러그인의 등록 · 그림 · 카메라 정리 | 파일 읽기 · 쓰기 · 지우기 |
| 네트워크 접근 |
- 에디터는 플러그인을 처음 찾을 때 경고를 한 번 띄웁니다.
- 직접 만들었거나 믿을 수 있는 곳에서 받은 플러그인만 넣습니다.
- 나눠 줄 때는 소스나 만든 곳을 함께 알려 줍니다.
- 플러그인 안에 비밀키 · 토큰을 넣지 않습니다. dll 은 쉽게 풀어 볼 수 있습니다.
올리기 전 확인
섹션 제목: “올리기 전 확인”-
plugin.json의version을 올렸다. -
sdk가 쓰는 기능의 최소 판이다. - 폴더에
NP.Editor.Sdk.dll이 없다. - 새 사용자 폴더에 넣고 「다시 훑기」로 켜진다.
- 켜기 → 끄기 → 켜기에서 메뉴 · 패널이 겹치거나 남지 않는다.
자세한 목록은 문제 해결의 「올리기 전 확인」에 있습니다.