UnityのPackage Managerの自作PackageをGitリポジトリのサブフォルダに置けるようになってたという話です。
はじめに
UnityのPackage Managerの機能を使うと、自作のPackageをGitのリモートリポジトリに配置することができます。
今までは自作のPackageをGitに公開する際にはpackage.jsonをリポジトリの直下に配置する必要がありました。
これは何かと不便だったのですが、いつの間にかサブフォルダにPackageを置くことができるようになっていたので方法を紹介します。
ちなみにこの内容については以下のフォーラムで議論されています。
https://forum.unity.com/threads/some-feedback-on-package-manager-git-support.743345/#post-5425311
マニュアルは以下のページに追記されています。
manifest.jsonの書き方
さて、まずリポジトリ直下に自作Packageを配置した場合には、manifest.jsonを以下のように記述することでインストールが行えます。
{ "dependencies": { "com.harumak.example": "https://github.com/Haruma-K/Example.git" } }
ここで、PackageをPackages/com.harumak.example
配下に移動したとします。
この場合にはURLのクエリパラメータのpathにPackageまでの相対パスを与えることでインストールが行えます。
{ "dependencies": { "com.harumak.example": "https://github.com/Haruma-K/Example.git?path=/Packages/com.harumak.example" } }
バージョンやリビジョンを同時に指定したい場合には、アンカーをクエリパラメータの後に書きます。
ちなみにここでいうバージョンはGitのタグを表します。package.jsonに書かれた値を見るわけではないので注意してください。
{ "dependencies": { "com.harumak.example": "https://github.com/Haruma-K/Example.git?path=/Packages/com.harumak.example#1.0.0" } }
対応しているUnityバージョン
この機能はUnity2020で実装され、Unity2019.3.4f1にバックポートされました。
したがってそれ以前のUnityにも対応する場合には、リポジトリからローカルのPackagesフォルダにPackageだけをコピーした後、
以下のようにローカルパス指定を行うことでインストールを完了するように促す必要がありそうです。
{ "dependencies": { "com.harumak.example": "file:com.harumak.example" } }
関連
参考
https://forum.unity.com/threads/some-feedback-on-package-manager-git-support.743345/#post-5425311