🍌

UnityのPackages内のコードをRider管理下に置く

2024/04/18に公開1
要約

DLしたパッケージをProject下に展開し、Add package from diskを使用して取り込む事でRider管理下に置くことができます。

解決したい事

UnityのUPMを使用してリモートからパッケージを取得すると、通常はこちらに展開されます。
PROJECT_ROOT\Library\PackageCache\パッケージ名
リモート経由で展開されたコードはRiderの管理化には無いため、参照を追っていく事ができません。

Read onlyに配置され、シンタックスハイライトも無効化されます。

使い慣れていたりブラックボックスで問題ないパッケージならいいのですが、
新しい機能の検証などでコードを追う必要がある場合不便です。

そういったケースで、PackagesのコードをUPMで管理しつつRider管理下に置く方法を見つけたので共有です。

環境

unity 2021.3.17f
addressables 1.19.19
JetBrains Rider 2022.1
本記事ではAddressablesを管理下に置きます。

管理下に置くフロー

  1. Package ManagerからUnity Registry経由でinstallする。

  2. ProjectWindowからパッケージのフォルダ選択して、Finder/Explorerで開く。

プロジェクトへのinstall先は、PROJECT_ROOT\Library\PackageCache\パッケージ名になります。

  1. パッケージをコピーしてリポジトリ直下のフォルダにコピー

この時、Assets下に入れてしまうとAssemblyやコードが重複してしまうので注意です。
本記事ではPackageSourceというフォルダを作成しコピーしました。

PROJECT_ROOT
└── Assets
└── PackageSource
    └── com.unity.addressables@1.19.19
  1. PackageManagerからインストール済みのパッケージを削除

  2. コピーしたパッケージをAdd package from deskで再インポート

インポートする対象のファイルはパッケージ内のpackage.jsonを選択します。
PROJECT_ROOT\PackageSource\com.unity.addressables@1.19.19\package.json

管理下にあるか確認

上記のフローを踏むことで、UPMパッケージ管理化に置きながら、Riderの管理下に置く事ができます。
Read onlyから解放されて、シンタックスハイライトやブレークポイント等のデバックサポートが受けられるようになれば成功です。

注意点

前述しましたが、複製したパッケージのコードはUPMを経由して取り込むため、
Assets下に入れてしまうとAssemblyやコードが重複するので注意が必要です。
Read onlyでは無くなるため、個人で差分が生まれないようにgit管理下にパッケージを複製するのがおすすめです。

Discussion