はじめに
UnityPackageManagerや、UnityPackageでパッケージを読み込むのが今となっては主流ですが、たまにtarballで管理したいことがあります。
そのたびにtar.gzどう作るか忘れてしまうので、まとめたいと思いました。
環境
MacOS
新規追加手順
パッケージの準備
パッケージにしたいアセットやスクリプトを一つのディレクトリにまとめて、直下にpackage.jsonを配置します。
あと、必要に応じてアセンブリディフィニションを追加します。
{
"name": "com.my.package",
"displayName": "MyPackage",
"version": "1.0.0",
"unity": "2021.3",
"description": "This is my package",
"author": {
"name": "MyName"
}
}
ディレクトリ構成はこんな感じで参考程度に
MyPackage/
├── Editor/
│ └── Scripts/
│ └── MyPackage.Editor.asmdef
├── Runtime/
│ └── Scripts/
│ └── MyPackage.asmdef
├── package.json
デスクトップなど適当なところにディレクトリをコピー
適当な場所にMyPackage/をコピーして、package/にリネームします。
ディレクトリ名がpackageでないと、読み込み失敗します
コマンドで圧縮
tar -czvf com.my.package-1.0.0.tar.gz package/
※./package/のように指定すると、読み込めなくなるので上記の形で指定してください
プロジェクトにtar.gzを配置する
Assetsディレクトリ外に、任意のディレクトリを作るかPackagesの中にtar.gzを配置します。
PackageManagerで読み込む
PackageManagerのInstall package from tarball...で、上の手順で追加したtar.gzを指定して読み込みます。
Packages/manifest.jsonを編集
PackageManagerで読み込むと絶対パスになっているので、Assetsからの相対パスに変更します。
Packages/にtar.gzを追加したときの例です。
- "com.my.package": "file:/Users/MyName/WorkDir/MyProject/Packages/com.my.package-1.0.0.tar.gz",
+ "com.my.package": "file:../Packages/com.my.package-1.0.0.tar.gz",
更新手順
バージョン名を変更して圧縮し、
tar -czvf com.my.package-1.1.0.tar.gz package/
バージョン部分を変更すればOKです。
- "com.my.package": "file:../Packages/com.my.package-1.0.0.tar.gz",
+ "com.my.package": "file:../Packages/com.my.package-1.1.0.tar.gz",
バージョン名なしで、tar.gzを上書きでも大丈夫ですが、バージョン見えていたほうが管理しやすいと思います。