打包屬於自己的 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
6會員
10內容數
只要10分鐘!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
#Jaku的沙龍 的其他內容
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
深入探討一些程式碼撰寫的習慣
紀錄如何讓簡單的 Property 在 Inspector 內顯示。
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
C# 9.0 給 Unity 程式設計上帶來的便利
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
深入探討一些程式碼撰寫的習慣
紀錄如何讓簡單的 Property 在 Inspector 內顯示。
每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步
C# 9.0 給 Unity 程式設計上帶來的便利
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
NPM 全稱為 ( Node Package Manager ),直接翻譯就是 "node套件管理器" ,是 Node.js 預設的,當下載 Node.js 時也會一並下載到本機端並安裝,而 Node.js 則是能讓 JavaScript 語法實現在後端伺服器運行的一種環境,可謂是前端開發的好朋友。
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
RPAI 數位優化器在這系列文章中,不會從基本除錯思維或套路開始說明,而是把焦點放在 UiPath 提供哪些除錯工具,透過理解工具使用方式、詳細解釋功能及比較不同功能差異,讓讀者對 UiPath 整個開發核心概念有更深了解,進而讓開發流程更加穩固!
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
NPM 全稱為 ( Node Package Manager ),直接翻譯就是 "node套件管理器" ,是 Node.js 預設的,當下載 Node.js 時也會一並下載到本機端並安裝,而 Node.js 則是能讓 JavaScript 語法實現在後端伺服器運行的一種環境,可謂是前端開發的好朋友。
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
RPAI 數位優化器在這系列文章中,不會從基本除錯思維或套路開始說明,而是把焦點放在 UiPath 提供哪些除錯工具,透過理解工具使用方式、詳細解釋功能及比較不同功能差異,讓讀者對 UiPath 整個開發核心概念有更深了解,進而讓開發流程更加穩固!