はじめに
個人製作でいろいろやっているとOSSを使うことがありますが、最終更新日が数年前のものがよくあります。しかし、ライブラリとしては使いたいけどいろいろいまのversionとはあっていないものがあるので、今回はその辺の更新とUPM、OpenUPMの登録をする方法をメモとして置いておきます。
みなさんも古いものは更新してどんどんほかの人(自分が)使えるようにしていきましょう!
対象者
- Unityで UPM,OpenUPMを登録したい人(今回はUnityで限定させていただきます)
- ライブラリを自分用にカスタマイズしたい人
ライブラリのfork
まずは自分がメンテナンスしたいライブラリがないと始まらないため、今回は 以下のライブラリをメンテナンスして UPMとOpenUPMで使えるようにしていきます。

ボタンを押すといろいろ設定ができますが、そのまま作成します。
(以下の画像は別のリポジトリのforkなので名前等は自分のものにしてください)

まずはこちらから fork を押して自分のリポジトリにforkしていきます
(今回は すでにforkされている方がいたので、fork されていたものをforkしています。ほぼ同じなので好きなところからforkしてください)
upmの登録
基本的には以下の記事を参考に進めていきます。
upmとして公開するには、以下が必要になってきます。もともとのライブラリによってすでに作成済みになっている場合があるので適宜スキップしてください。
- ライブラリのフォルダの作成
package.jsonの作成package.jsonの内容を適切に記述
フォルダの作成

上の画像のように ライブラリ用のフォルダを作成していきます。名前は適切なものにして、ほかの人が見たときにわかるようにしておきましょう。
package.json の作成と記述

フォルダの中に package.json を作成します。
次に記述を以下のようにします。
{
"name": "com.ayutaz.uigradients" ,
"displayName": "UI Gradients" ,
"version": "1.0.1" ,
"unity": "2021.3" ,
"description": "A small collections of scripts to add gradient effects to UGUI elements." ,
"keywords": [
"Gradient" ,
"UI"
]
}
確認作業
新規のプロジェクトを作成して、PackageManagerを開きます。
Add Package from Git URLから自分のURLを追加します。

私の場合は、https://github.com/ayutaz/Unity-UIGradient.git?path=Assets/UIGradients になります。
これで以下のようにライブラリが問題なく追加できれば upmの対応は終了です。

遭遇するかもしれないエラーと対応方法
~ is not valid JSON: Unexpected token in JSON at position 0
UnityのPackge Managerから登録した際に 上記のエラーが表示されることがあります。こちらは、BOM が入っていることがあるのでこちらを取り除いていきます。

Editorによって少し操作が異なってきますが、以下のようなメニューがあるので エンコードを指定して開きなおす などを押して適切なエンコード (だいたいは utf-8 ) で開いて保存すれば直ります。

更新したときの作業
修正点が見つかって、更新したときには package.json の version を更新しておきましょう。
こちらを更新しないと 追加したときのversionの数字が更新されません。
OpenUPMの登録
Open UPM( packge.json からインストールする) ためには登録する必要があります。
こちらから以下のように申請していきましょう
- リポジトリの登録

- 詳細の設定
Defaultのブランチや ライセンスなどを記載していきます。特にこだわらなければ、リポジトリと同じものにしましょう

- PRの提出とデプロイ待ち
あとは上記のものを PRを出して、テストが通れば数時間くらいでデプロイが完了します。
このときに package.jsonのversionと同じgit tagを設定しないとPackage Managerから見てない ことに注意してください
PRがマージされると package.jsonに記載すると PackageManagerに表示されるようになります!
OpenUPM のサイトに登録されていれば今後自分が登録したものが使えるようになります!
- 登録の確認 以下登録した終わった今回のライブラリ
