打包屬於自己的 Unity Package

更新 發佈閱讀 3 分鐘

前言

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


Unity Package Manager (UPM)

打開

從哪裡開啟 UPM 呢?

vocus|新世代的創作平台
vocus|新世代的創作平台

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

vocus|新世代的創作平台
  • Unity Registry:Unity 開發的插件
  • In Project:這個專案所使用的插件
  • My Assets:帳號擁有的插件
  • Built-in:內建插件


使用 git URL 匯入

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

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

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

vocus|新世代的創作平台

然後貼到 UPM 上面

vocus|新世代的創作平台

結果就報錯了?

vocus|新世代的創作平台

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

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

vocus|新世代的創作平台

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

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

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

vocus|新世代的創作平台

使用 manifest 管理

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

vocus|新世代的創作平台

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


打包自己的 Package

為了甚麼?

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

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

vocus|新世代的創作平台

加入功能

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

vocus|新世代的創作平台
記得加上命名空間,我們等等要設定 asmdef ,另外也能避免東西混在一起

Assembly Definition

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

vocus|新世代的創作平台

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

vocus|新世代的創作平台

Manifest

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

vocus|新世代的創作平台

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

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

這裡指定了 UniTask 2.3.3

這裡指定了 UniTask 2.3.3

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

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

測試

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

vocus|新世代的創作平台

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

vocus|新世代的創作平台
別忘了引入命名空間 using Unknow.Colorful

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

vocus|新世代的創作平台

成功印出紅色的文字了!


結語

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

留言
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
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
Thumbnail
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
Unity UPR 是一款資源檢測軟體,用於不同平台的基本規範來進行專案優化的指導,這篇就要來教學怎麼在 Windows 系統上使用 cmd 來導入專案資訊到網站的 Unity UPR 進行資源檢測。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這篇文章將會講述 Time line 的入門方式,從安裝到配置,並分享一個簡單的流程與步驟,了解 Unity Time line 的運作方式。
Thumbnail
這篇文章將會講述 Time line 的入門方式,從安裝到配置,並分享一個簡單的流程與步驟,了解 Unity Time line 的運作方式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News