📦

ローカルUPMパッケージをunitypackage化する

2024/01/02に公開

unitypackageはフォーマットとしては Packages フォルダへのインストールに対応していますが、標準のExport Package...メニューではPackages下に作成したローカルなパッケージのファイルをエクスポートすることができません。

実は、Asset Store Publishing Toolsが実験的にこの機能を提供しています。

https://assetstore.unity.com/packages/tools/utilities/asset-store-publishing-tools-115?locale=ja-JP

今回紹介する手順の中ではUnity Publisher Portalにパッケージの登録(おそらくダミーでもOK)が必要です。自分はまさにAsset Storeに登録するunitypackageでPackagesを使いたかったので好都合でした。


Asset Store Publishing Toolsをインストールしたら、Project Settings > Other Settings > Scripting Define SymbolsUNITY_ASTOOLS_EXPERIMENTALを追加します。Packages下にアセットを展開するunitypackageを作成する機能はこのDefine Symbolがないと使用できません。

次に、Unity Publisher Portalでパッケージを作成し、Draft状態にします。

https://publisher.unity.com/

Unity側でAsset Store Uploaderを開いてUnity IDでログインすると、draft状態のパッケージが表示されます。

このパッケージに対してUpload TypeLocal UPM Packageに設定し、Package pathにパッケージルートフォルダを設定して、Exportします。

エクスポートされたunitypackageを開いてみると、こんな風に表示されます。ちゃんとSamples~ とか、末尾にチルダを付けたフォルダも含まれてますね。

ということで以上です。Asset Store自体がscoped registryベースでパッケージを配信出来たら理想的なんですけど、当分はこれでいくことになりそうです。


ところで、UPMパッケージのミラーをGitHubに公開していることでおなじみのneedleからhybrid-packagesというものが公開されています。こちらでもPackagesフォルダに展開されるunitypackageを作成することが可能なようです。

https://github.com/needle-tools/hybrid-packages

Discussion