MRが楽しい

MRやVRについて学習したことを書き残す

PackageManagerでtgzファイルを指定した際にエラーが発生する場合の対処

本日は Unity のエラー対処枠です。
PackageManagerでtgzファイルを指定した際にエラーが発生する場合の対処を記事にします。

前提条件

以下の記事で紹介した、PackageManager で tgz ファイルを指定したときの発生事象です。
bluebirdofoz.hatenablog.com

発生事象

PackageManager でパッケージファイル(tgz)を指定してインポートを行います。

このとき、パッケージファイルによっては以下のようなファイルパスエラーが発生して、インポートに失敗することがありました。

[Package Manager Window] Unable to add package [file:UnityTechnologies/com.unity.xr.windowsmr-4.6.3.tgz]:
  The file [C:\Users\dezi_\AppData\Local\Temp\.tmp15964iz7S0mZd2ylu\package.json] cannot be found
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()


原因

tgz ファイル作成時に package フォルダをトップフォルダに指定して圧縮していなかった場合、本事象が発生するようです。
例えば以下のように PackageCache フォルダから取得したままのフォルダ名で tar ファイルを作成した場合、事象が再現しました。

tar -czvf com.unity.xr.windowsmr-4.6.3.tgz com.unity.xr.windowsmr@4.6.3

また以下のように .(カレントディレクトリ) を含めたファイルパスで tar ファイルを作成した場合も同様にエラーが発生します。

tar -czvf com.unity.xr.windowsmr-4.6.3.tgz .¥package