작성자 : SongD
최초작성 : 2022 / 09
내용
유니티 커스텀 패키지 제작 과정을 기술한 문서입니다.
참고
만약 패키징 할 파일들이 이미 있다면 바로 패키지화 하면 됩니다.
Custom Package를 만들기 위한 아주 간단한 내용을 준비해 보도록 하겠습니다.
아래와 같은 구조로 파일을 준비합니다.
CustomPackage
│
├── Editor
│ ├── CustomPackageEditor.cs
│ └── CustomPackageEditor.cs.meta
│
├── Runtime
│ ├── CustomPackageScript.cs
│ └── CustomPackageScript.cs.meta
│
└── Samples
├── CustomPackageSampleScene.unity
└── CustomPackageSampleScene.unity.meta
| Editor | Runtime | Samples |
|---|---|---|
![]() |
![]() |
![]() |
Runtime 스크립트와 Editor 스크립트를 확인하기 위해 간단한 기능을 작성해 주도록 하겠습니다.
먼저 [Runtime] → [CustomPackageScript] 스크립트를 아래와 같이 작성합니다.
using UnityEngine;
public class CustomPackageScript : MonoBehaviour
{
public static void DebugText(string msg)
{
Debug.Log(string.Format("{0} \n Package Successfully Loaded!", msg));
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
DebugText("This message called Runtime Script!");
}
}
}작성한 스크립트를 [Samples] → [CustomPackageScene] 씬에서 빈 오브젝트를 만들어 컴포넌트화 해줍니다.
씬에 빈 오브젝트를 생성해줍니다.
빈 오브젝트에 컴포넌트로 추가합니다.
Play Mode에서 Space 키를 눌러 스크립트가 잘 작동하는지 확인합니다.
다음으로 [Editor] → [CustomPackageEditorScript] 스크립트를 아래와 같이 작성합니다.
using UnityEditor;
public class CustomPackageEditor : Editor
{
[MenuItem("CustomPackageSample/Test")]
public static void Test()
{
CustomPackageScript.DebugText("This message called Editor Script!");
}
}작성 후 에디터로 돌아와 컴파일이 완료된다면, 에디터 상단에 [CustomPackageSample] → [Test] 메뉴를 눌러 확인할 수 있습니다.
패키지 내 스크립트는 어셈블리 정의 파일과 연결해야 참조가 가능합니다.
Runtime 폴더와 Editor 폴더 내부에 각각 asemdef 파일을 생성해줍니다.
| Runtime | Editor |
|---|---|
![]() |
![]() |
Runtime 폴더의 asemdef 파일은 초기 상태 그대로 두고, Editor 폴더의 asemdef 파일은 아래와 같이 구성해줍니다.
패키지에 사용 할 파일들을 폴더째로 [Project] → [Packages] 폴더 내부로 이동해줍니다.
폴더 내부에 [package.json] 파일을 생성해줍니다.
package.json 내용을 아래와 같이 작성해줍니다.
{
"name": "com.{작성자이름}.{패키지 이름}", (이 필드의 문자열은 소문자,숫자,- 만 가능합니다.)
"displayName": "표기될 패키지 이름",
"version": "0.1.0", [추천:(메인, 서브, 기능)]
"description": "설명을 기입해주세요",
"samples": [
{
"displayName": "샘플 폴더 이름",
"description": "샘플 설명",
"path": "샘플 폴더 위치" [추천 : samples~] (여기서 폴더 뒤에 ~은 에디터상에서 보이지 않게 만든다.)
}
],
"author": {
"name": "이름",
"email": "이메일",
"url": "홈페이지/깃허브 등 링크"
}
}
-
예시
{ "name": "com.kimsongd.custom-package-test", "displayName": "Custom Package Test", "version": "0.1.0", "description": "Custom package for test and practice", "samples": [ { "displayName": "CustomPackageTestSample", "description": "Sample of Custom Package Test", "path": "Samples~" } ], "author": { "name": "SongD", "email": "dylanhayunsong@gmail.com", "url": "https://github.com/DylanHayunSong" } }
Samples폴더와 Samples.meta 파일의 이름을 package.json에 작성한 것과 같이 변경해줍니다.
에디터로 돌아와 [Window] → [Package Manager] 에서 지금까지 만든 패키지를 확인 할 수 있습니다.

















