plugin.json
plugin.json 은 플러그인 폴더 바로 아래에 두는 설명 파일입니다. 에디터는 이 파일로 플러그인을 찾고, 검사하고, 불러옵니다. 이 파일이 없는 폴더는 플러그인으로 보지 않습니다.
%APPDATA%\NPEditor\plugins\└─ road_tools\ ├─ plugin.json ├─ RoadTools.dll └─ RoadTools.pdb (선택)| 칸 | 필수 | 형식 | 설명 |
|---|---|---|---|
id | 예 | 글 | 플러그인 id 입니다. 아래 「id 규칙」을 따릅니다. 폴더 이름과 달라도 됩니다. |
name | 아니요 | 글 | 플러그인 관리자에 보일 이름입니다. 비우면 id 를 씁니다. |
version | 예 | 글 | 내 플러그인 판입니다. x.y.z 꼴입니다. 뒤에 -태그 나 +태그 를 붙일 수 있습니다(예 1.2.0-beta.1). |
sdk | 예 | 글 | 필요한 SDK 판 범위입니다. 아래 「sdk 범위」를 따릅니다. |
dll | 예 | 글 | 불러올 dll 경로입니다. plugin.json 기준 상대 경로입니다. 하위 폴더는 되고 .. 와 절대 경로는 안 됩니다. .dll 로 끝나야 합니다. |
entry | 아니요 | 글 | 진입 클래스의 전체 이름(네임스페이스.클래스)입니다. 비우면 dll 안에서 INpEditorPlugin 을 구현한 첫 클래스(전체 이름 순)를 씁니다. |
description | 아니요 | 글 | 플러그인 관리자의 설명 줄과 툴팁에 나옵니다. |
author | 아니요 | 글 | 만든 사람입니다. |
- 모든 칸은 JSON 글(문자열)입니다. 글이 아닌 값은 빈 칸으로 봅니다.
- 위에 없는 칸은 무시합니다.
//주석과 끝 쉼표를 허용합니다.- 칸이 틀리면 플러그인 관리자에 「오류(파일)」과 이유가 나옵니다.
id 규칙
섹션 제목: “id 규칙”| 규칙 | 맞음 | 틀림 |
|---|---|---|
| 소문자로 시작 | road_tools | RoadTools · 1road · _road |
소문자 · 숫자 · _ 만 | road_tools2 | road-tools · road tools |
. 로 마디를 나눌 수 있음 | myteam.road_tools | myteam..road · road. |
- 같은
id가 둘 있으면 먼저 찾은 폴더 것만 씁니다(플러그인 폴더 순서 → 폴더 이름 순). 나머지는 「오류(파일)」이 됩니다. - 에디터 안에서 이 플러그인이 등록한 메뉴 · 모드 · 패널 id 앞에
ext.<id>.가 붙습니다. - 설정 파일 이름(
plugin_settings\<id>.json)과 단축키 저장도id를 씁니다. 나중에id를 바꾸면 저장된 설정이 이어지지 않습니다.
sdk 범위
섹션 제목: “sdk 범위”| 쓴 것 | 뜻 | 쓰는 때 |
|---|---|---|
"^1.2" | 1.2.0 이상 2.0.0 미만 | 권장. 쓰는 기능의 최소 판으로 씁니다. |
"1.2" | "^1.2" 와 같음 | |
"~1.2" | 1.2.0 이상 1.3.0 미만 | 1.2.x 에서만 돌려야 할 때 |
">=1.0" | 1.0.0 이상(위 끝 없음) | 권장하지 않음. 다음 major 에서도 불러옵니다. |
">1.0" | 1.0.0 초과 | |
"<1.5" | 1.5.0 미만 | 다른 조건과 함께 씁니다. |
"<=1.4" | 1.4.0 이하 | |
">=1.0 <1.5" | 1.0.0 이상 1.5.0 미만 | 공백으로 조건을 이어 씁니다. |
"=1.3.0" | 1.3.0 만 | 시험용 |
- 판은 1~3마디로 씁니다.
1은1.0.0,1.2는1.2.0입니다. - 판 뒤의
-태그는 비교에서 뺍니다. - 범위에 에디터의 SDK 판이 들지 않으면 「버전 안 맞음」이 되고 불러오지 않습니다. 에디터는 계속 돕니다.
어떤 판을 쓸까
섹션 제목: “어떤 판을 쓸까”| 쓰는 기능 | sdk |
|---|---|
메뉴 · 빠른 추가 · 명령 · 가져오기/내보내기 · 패널 · 모드 · 액터 타입 · 칸 지킴이 · 대칭 · WorldChanged · Committed | ^1.0 |
위 + 단축키 · Settings · Draw | ^1.1 |
위 + AddSceneEvent | ^1.2 |
위 + Scene · View · 칸 종류 ActorList | ^1.3 |
판별 내용은 SDK 변경 내역에 있습니다.
같은 major 안에서 SDK 는 멤버를 더하기만 하고 이름을 바꾸지 않습니다. 그래서
^1.0플러그인은 SDK 1.3 에디터에서도 돕니다.
가장 짧은 파일입니다.
{ "id": "my_first_plugin", "version": "0.1.0", "sdk": "^1.0", "dll": "MyFirstPlugin.dll"}모든 칸을 쓴 파일입니다.
{ // 관리자 창에 보일 이름 "id": "myteam.road_tools", "name": "도로 도구", "version": "1.2.0", "sdk": "^1.1", "dll": "bin/RoadTools.dll", "entry": "RoadTools.Plugin", "description": "선택 영역에 도로 깔기 · 가로등 · 단축키 Ctrl+Alt+R", "author": "도로팀",}