콘텐츠로 이동

배포와 버전

플러그인은 폴더 하나로 나눠 줍니다. 받는 사람은 그 폴더를 플러그인 폴더에 넣고 플러그인 관리자에서 켭니다.

파일넣나설명
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.json

dotnet build -c Release 출력 폴더에서 위 파일을 골라 압축합니다. 받는 사람에게 다음을 알려 줍니다.

  1. 압축을 풀어 road_tools 폴더를 플러그인 폴더(도구 › 플러그인 폴더 열기)에 넣습니다.
  2. 도구 › 플러그인 관리자… 에서 「다시 훑기」를 누릅니다.
  3. 처음이면 보안 경고에서 「믿을 수 있음 — 불러오기」를 누릅니다.

에디터 설치 폴더 아래 plugins\ 폴더에 넣어도 에디터가 읽습니다.

plugin.json 의 version 은 semver(major.minor.patch)로 올립니다. 플러그인 관리자의 「버전」 칸에 보입니다.

바꾼 것올릴 자리예
버그만 고침patch1.2.0 → 1.2.1
기능을 더함(저장 형식 · 명령은 그대로)minor1.2.1 → 1.3.0
명령 이름 · 월드 로직 type · 설정 키 · 저장 형식을 바꿈major1.3.0 → 2.0.0
  • 월드 로직 Type 과 칸 Name 은 맵 파일(scene.json)에 저장됩니다. 바꾸면 옛 맵의 규칙이 「모르는 type」이 됩니다.
  • id 는 바꾸지 않습니다. 설정 파일 · 사용자가 바꾼 단축키가 id 로 저장됩니다.

sdk 는 실제로 쓰는 기능의 최소 판으로 씁니다.

쓰는 것sdk돌아가는 에디터
SDK 1.0 기능만^1.0SDK 1.0 ~ 1.x 모두
Settings · Draw · AddShortcut^1.1SDK 1.1 ~ 1.x
AddSceneEvent^1.2SDK 1.2 ~ 1.x(에디터 0.9.0 이상)
Scene · View · ActorList^1.3SDK 1.3 ~ 1.x(에디터 0.9.1 이상)
  • 너무 높게 쓰면 옛 에디터 사용자가 못 씁니다.
  • 너무 낮게 쓰면 옛 에디터에서 불러오다 없는 멤버 때문에 실패합니다(「버전 안 맞음」).
  • 위 끝 없는 범위(>=1.0)는 쓰지 않습니다. 다음 major 에서 깨진 채로 불러올 수 있습니다.
약속내용
같은 major 안형식 · 멤버를 더하기만 합니다. 이름을 바꾸거나 빼지 않습니다.
새 칸기본값이 있는 끝 칸으로 더합니다. 옛 코드는 그대로 컴파일됩니다.
깨는 변경major 를 올립니다(2.0). ^1.x 플러그인은 「버전 안 맞음」으로 안전하게 멈추고 에디터는 계속 돕니다.
동작같은 major 안에서 등록점의 뜻을 바꾸지 않습니다.

판별 변경은 SDK 변경 내역에 있습니다.

플러그인은 서명 검사 없이 이 컴퓨터에서 에디터와 같은 권한으로 실행되는 코드입니다.

막는 것막지 못하는 것
플러그인 코드의 예외 → 그 플러그인만 끔(격리)무한 루프 · 스택 넘침 · 프로세스 종료
끈 플러그인의 등록 · 그림 · 카메라 정리파일 읽기 · 쓰기 · 지우기
네트워크 접근
  • 에디터는 플러그인을 처음 찾을 때 경고를 한 번 띄웁니다.
  • 직접 만들었거나 믿을 수 있는 곳에서 받은 플러그인만 넣습니다.
  • 나눠 줄 때는 소스나 만든 곳을 함께 알려 줍니다.
  • 플러그인 안에 비밀키 · 토큰을 넣지 않습니다. dll 은 쉽게 풀어 볼 수 있습니다.
  • plugin.json 의 version 을 올렸다.
  • sdk 가 쓰는 기능의 최소 판이다.
  • 폴더에 NP.Editor.Sdk.dll 이 없다.
  • 새 사용자 폴더에 넣고 「다시 훑기」로 켜진다.
  • 켜기 → 끄기 → 켜기에서 메뉴 · 패널이 겹치거나 남지 않는다.

자세한 목록은 문제 해결의 「올리기 전 확인」에 있습니다.