ローカルUPMパッケージをunitypackage化する
unitypackageはフォーマットとしては Packages フォルダへのインストールに対応していますが、標準のExport Package...
メニューではPackages下に作成したローカルなパッケージのファイルをエクスポートすることができません。
実は、Asset Store Publishing Toolsが実験的にこの機能を提供しています。
今回紹介する手順の中ではUnity Publisher Portalにパッケージの登録(おそらくダミーでもOK)が必要です。自分はまさにAsset Storeに登録するunitypackageでPackagesを使いたかったので好都合でした。
Asset Store Publishing Toolsをインストールしたら、Project Settings > Other Settings > Scripting Define SymbolsにUNITY_ASTOOLS_EXPERIMENTAL
を追加します。Packages下にアセットを展開するunitypackageを作成する機能はこのDefine Symbolがないと使用できません。
次に、Unity Publisher Portalでパッケージを作成し、Draft状態にします。
Unity側でAsset Store Uploaderを開いてUnity IDでログインすると、draft状態のパッケージが表示されます。
このパッケージに対してUpload TypeをLocal UPM Packageに設定し、Package pathにパッケージルートフォルダを設定して、Exportします。
エクスポートされたunitypackageを開いてみると、こんな風に表示されます。ちゃんとSamples~ とか、末尾にチルダを付けたフォルダも含まれてますね。
ということで以上です。Asset Store自体がscoped registryベースでパッケージを配信出来たら理想的なんですけど、当分はこれでいくことになりそうです。
ところで、UPMパッケージのミラーをGitHubに公開していることでおなじみのneedleからhybrid-packagesというものが公開されています。こちらでもPackagesフォルダに展開されるunitypackageを作成することが可能なようです。
Discussion