もくもくブログ

メモに近い。記事の正確性には期待をしないでください。

Follow me on GitHub

よく使用するサードパーティライブラリをUPM化して管理を簡単に

記事の目的

UniTaskやUniRx、CRIWAREなど、様々なサードパーティ製ライブラリの管理方法を楽にする。

問題点

通常.unitypackageファイルを用いてライブラリを導入すると、Assetsフォルダ以下に各種ファイルが設置される。
これは自身のスクリプトとライブラリ側のファイルが混ざるため、邪魔になる。
(通常はライブラリファイル群が一か所になるように、分けられてはいるがそれでも邪魔である。)

また、現在導入しているライブラリのバージョンがいくつであるのか、不明瞭になる問題がある。
他、現在導入されているライブラリ群が一見よくわからない問題がある。

解決方法

所謂UPM(Unity Package Manager)を使用する。
こちらで管理することで、導入されているライブラリが一覧になる。
img01.png

UPMにライブラリを追加する場合、ライブラリ側でUPMに追加できるようなフォルダ構造となっている必要がある。
基本的にはライブラリ側にpackage.jsonが存在すれば、特段問題なく追加ができる。
例としてUniTaskではUPMに追加できる構造となっている。

なお、UPMに追加できるような構造は公式ドキュメントに記載されているため要確認。
UPMパッケージレイアウト
完璧にこのフォルダ構造になっている必要はない。
package.jsonは必要。

ただ、場合によりフォルダ構造が異なるケースが存在する。
その場合は自身でリポジトリを作成し、UPMに登録を行う。
以下ではPlayFabSDKを改造している。
package.jsonの追加と、Runtimeフォルダ構造追加などを行っている。

img02.png

対応できないケース

ものによってはpackage.jsonを追加しただけでは動作しないケースが存在する。
ライブラリ側で特定のフォルダ構造を想定して実装が行われている場合等。
現在、自分が使用している以下のライブラリではUPM対応が取れないが、issueが存在するので、こちらの対応を待っている。