打包屬於自己的 Unity Package

更新於 發佈於 閱讀時間約 3 分鐘

前言

開發 Unity 常用到外部插件,很多時候都是使用 .unitypackage 的方式導入,如果有用過 Node.js 的同學應該知道 npm 這個強大的套件管理系統,而 Unity 也有自己的插件管理系統 —— UPM。


Unity Package Manager (UPM)

打開

從哪裡開啟 UPM 呢?

raw-image
raw-image

我們可以看一下上面這個分類:

raw-image
  • Unity Registry:Unity 開發的插件
  • In Project:這個專案所使用的插件
  • My Assets:帳號擁有的插件
  • Built-in:內建插件


使用 git URL 匯入

拿我常用的插件 UniTask 來舉例。

UniTask 是 Cy 把拔開發的輕量級 Task 包。

通常我們會直接到 Release 頁下載 .unitypackage 來安裝,但這樣就沒辦法用 UPM 管理。所以我們看一下他的 git URL:

raw-image

然後貼到 UPM 上面

raw-image

結果就報錯了?

raw-image

報錯內容大致上是:該 git 路徑沒有 package manifest ,甚麼是 package manifest ?可以想成是插件的身分證,他會記錄插件的名稱、作者、相依性等資訊,通常命名為 package.json

那我們來找找看 UniTask 的身分證,直接在 GitHub 上搜尋

raw-image

所以 src/UniTask/Assets/Plugins/UniTask 就是身分證所在的路徑,所以我們把 git URL 改成這樣:

https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask

再貼回 UMP 上,這次就成功了

raw-image

使用 manifest 管理

其實在 UPM 新增插件就是在變更 ~/Packages/manifest.json

raw-image

所以也可以直接在這邊照著 json 格式將鍵值對填上


打包自己的 Package

為了甚麼?

有些公用程式碼、模板甚至自製架構,匯入流程都是不變的,所以我們也可以打包成插件,並且用版控進行更新。

我們先建立一個專案,並進行版控

raw-image

加入功能

我們來寫個可以幫字串加上 html color tag 的擴充方法,並把它打包成插件試試

raw-image
記得加上命名空間,我們等等要設定 asmdef ,另外也能避免東西混在一起

Assembly Definition

接著處理 .asmdef 檔,告訴 Unity 這個程式碼能在那些平台運行

raw-image

因為我們的程式碼相當簡單,並不需要針對各個平台進行設定,所以建立後依照命名空間命名就行了

raw-image

Manifest

最後來處理 manifest,在插件資料夾底下新增一個名為 package.json 的檔案

raw-image

然後在裡面填入插件的資訊

nameversion 是必填的值,其他是通常會填的。這邊要特別說一下,如果跟其他插件有相依性,可以寫在 dependencies 裡面

這裡指定了 UniTask 2.3.3

這裡指定了 UniTask 2.3.3

版本指定的部分使用到 Semver ,有興趣可以研究一下~

如此一來,屬於你的插件就打包完成了!

測試

我們回原本的專案測試看看效果吧!匯入的方法跟上面一樣,先取得 git URL ,再找到 package.json 的位置(?path=Assets/Colorful),最後填到 UPM 上面

raw-image

成功匯入,來試試能不能用,我們來幫字串 Hello 著色並 Log 出來

raw-image
別忘了引入命名空間 using Unknow.Colorful

到 Unity 將程式碼拉到物件上,接著播放

raw-image

成功印出紅色的文字了!


結語

這次簡單介紹管理、匯入、打包 Unity Package 的方法,將一些通用程式碼打包進插件內,節省時間。

留言
avatar-img
留言分享你的想法!
avatar-img
#Jaku的沙龍
6會員
10內容數
只要10分鐘!
#Jaku的沙龍的其他內容
2023/08/15
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
Thumbnail
2023/08/15
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
Thumbnail
2023/08/06
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
2023/08/06
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
2023/08/03
深入探討一些程式碼撰寫的習慣
Thumbnail
2023/08/03
深入探討一些程式碼撰寫的習慣
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這篇文章將會講述 Time line 的入門方式,從安裝到配置,並分享一個簡單的流程與步驟,了解 Unity Time line 的運作方式。
Thumbnail
這篇文章將會講述 Time line 的入門方式,從安裝到配置,並分享一個簡單的流程與步驟,了解 Unity Time line 的運作方式。
Thumbnail
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
Thumbnail
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News