Unityのエディタ拡張などは Unity Package Manager (UPM) で配布するのが便利です。 UPMのメリットとしては以下の点が挙げられます。
- バージョン管理、アップデートが容易
- 依存関係を設定できるため、依存先もUPMであれば同梱・再配布を回避できる
- Assetsディレクトリ下を汚さない
しかし、Unity 2019.2より前のバージョンではPackage ManagerウィンドウでGit URLが指定できなかったり、scopedRegistriesの指定のために Packages/manifest.json ファイルを直接編集しなければならず、手軽に使ってもらうにはややハードルがあります。
また、VRChatユーザへの露出を考えると BOOTH からダウンロードできる形式での配布にはメリットがありそうです。
折衷案を探っていたところ、UPMパッケージをインポートしてくれるunitypackage形式のインストーラを生成してくれるサービスを見つけたので紹介します。
glitch-package-installer
前提として、配布するUPMパッケージは OpenUPM などどこかしらのレジストリに登録されている必要があります(Git URLではできません)。
$ curl -o installer.unitypackage https://package-installer.glitch.me/v1/installer/OpenUPM/com.nowsprinting.blender-like-sceneview-hotkeys?registry=https%3A%2F%2Fpackage.openupm.com
すると、installer.unitypackageというファイルが生成されます。
このファイルをUnityエディタにインポートすると、OpenUPMから com.nowsprinting.blender-like-sceneview-hotkeys
の最新バージョンがインポートされます。
なお、installer.unitypackageの中身は独自のインストーラであり、実際はこのインストーラが働いて Packages/manifest.json を編集したのち、インストーラ自身を削除するという振る舞いをしています。
UPMパッケージ自体のインポートは Packages/manifest.json に従ってUPMが行なうため、以降のアップデートは Package Manager ウィンドウで行なえます。
ちなみに、レジストリにOpenUPMを使っている場合、ページ右上にある "Get installer.unitypackage" ボタンでダウンロードできるものはこれと同じものです*1。
APIの詳しい使い方はWebサイトを参照してください。
ソースコードも公開されています。
補足
APIのサイトには、バージョン指定、スコープ指定の方法が書いてありますが、試したところ指定は反映されず、常にバージョンもスコープも指定なしのインストーラが生成されました*2。
また、
should work fine from 2019.1 to 2020.2+.
とありますが、 Unity 2018.4.20f1 へのインストールができることは確認しています。
(1/7追記) 上記の通り、生成されるunitypackageにはUPMパッケージ本体のコードは含まれません。従ってコードのバックアップとしては用をなさないのでご注意ください。