本篇要來製作自己的 Unity Package Manager (UPM)
Unity Package Manager 是 Unity 中的插件包
類似你從 Asset Store 下載插件來使用的感覺
不同的地方是使用 UPM 你可以自己掛載在 Github 或是 OpenUPM 上
管理自己的插件起來比較方便簡單
1. 建立 UPM Package 開發環境
Unity 推出了官方的 UPM Package 開發工具
只需要一步就可以把開發的環境框架創建好
省去了自己手動建立資料夾的步驟
首先打開 Package Manager, 點擊 Install package from git URL
輸入 com.unity.upm.develop
安裝成功之後你就會看到 Create package 的選項
創建新的 package之後
你會看到一個已經整理好資料結構的插件包
接下來只要替換掉裡面的代碼和文檔就行啦
2. 開始開發自己的插件包 - YapiBtn
接下來我們來開發一個自己的插件包
並且上傳到 Github 和 OpenUPM
我們使用上一篇提到的 YapiBtn 來做成插件包
點選生成的 Package 目錄之後
點擊 Copy To Packages folder
可以把創建的環境複製到Asset底下進行開發編輯:
接下來就把代碼和文件重新擺放進去即可
熟練之後也可以直接創建對應的資料夾
省去安裝 UPM 開發工具的步驟
以下是我修改後的目錄結構:
核心代碼的部分我放到了 Scripts/ 下面
通常可以區分成 Editor 和 Runtime (但我這裡放 Attributes)
為了提高編譯效率
可以分別在 Editor 和 Runtime 上新增 Assembly Definition
在 Editor 的 Assembly Definition 上可以增加Runtime 代碼的 Assembly
然後記得勾選 Editor就好
這樣遊戲打包發佈的時候就不會一起打包出去
比較重要的是 package.json 要好好地寫
這個會顯示在 Package Manager 上:
{
"name": "com.yayapipi.yapibtn",
"displayName":"YapiBtn",
"version": "0.1.0",
"unity": "6000.0",
"description": "The **YapiBtn** package allows you to add custom buttons in the Unity Inspector by attaching the `[YapiBtn]` attribute to methods, making testing and debugging easier.",
"dependencies": {
},
"samples": [
{
"displayName": "YapiBtn Demo",
"path": "Samples/Example"
}
]
}
更詳細的參數可以到這裡查看:
3. 上傳到 Github
首先在 Github 上建立新的 Repository
git clone 下來之後拖到專案目錄下
可以先把當前的專案 commit 一份上去
記得加上 .gitignore 排除不要的文件
接下來你可以直接用指定路徑的方式安裝(記得開新專案)
https://github.com/yayapipi/YapiBtn.git?path=Assets/YapiBtn
安裝成功之後就會長這個樣子:
你也可以再額外安裝 Samples 到 Assets 頁面:
4. 上傳到OpenUPM
OpenUPM 是一個 Unity Package 的插件包管理網站
上面有很多各種各樣的 Unity 開源插件包
你也可以自己上傳自己的 Github 插件包上去
但在那之前,
我們需要開另一個 git branch 來管理我們的插件包
git subtree split --prefix=Assets/YapiBtn --branch upm
git tag 1.0.0 upm
git push origin upm --tags
上面的指令是
先用 subtree split 指令把 YapiBtn 目錄下的文件整理成一個 Branch
然後新增一個 1.0.0 的 tag 再推上去 Github
完成這一步之後
你就成功解鎖了更多的安裝插件包的功能:
https://github.com/yayapipi/YapiBtn.git#1.0.0
https://github.com/yayapipi/YapiBtn.git#upm
接下來我們可以去上傳 OpenUPM了
https://openupm.com/packages/add/
到上面的網址, 跟著指令填寫相關的訊息
填寫完成之後會跳出 Github 的頁面
你需要先 fork 一份專案
然後按 Commit changes
然後申請 Pull Request
接下來就會開始跑自動化的流程,驗證你的插件包
順利的話
差不多15~30分鐘後就會看到你的插件了
插件網址會長這樣
https://openupm.com/packages/your-package-name/
也會出現在 Listing Page
專案 Github:
參考文章:
[1] Unity 插件目錄結構說明
Discussion