0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity Install package from tarball用のパッケージを作成する

Posted at

はじめに

UnityPackageManagerや、UnityPackageでパッケージを読み込むのが今となっては主流ですが、たまにtarballで管理したいことがあります。
そのたびにtar.gzどう作るか忘れてしまうので、まとめたいと思いました。

環境

MacOS

新規追加手順

パッケージの準備

パッケージにしたいアセットやスクリプトを一つのディレクトリにまとめて、直下にpackage.jsonを配置します。
あと、必要に応じてアセンブリディフィニションを追加します。

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を上書きでも大丈夫ですが、バージョン見えていたほうが管理しやすいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?