UnityのPackages内のコードをRider管理下に置く
要約
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
を管理下に置きます。
管理下に置くフロー
-
Package ManagerからUnity Registry経由でinstallする。
-
ProjectWindowからパッケージのフォルダ選択して、Finder/Explorerで開く。
プロジェクトへのinstall先は、PROJECT_ROOT\Library\PackageCache\パッケージ名
になります。
- パッケージをコピーしてリポジトリ直下のフォルダにコピー
この時、Assets下に入れてしまうとAssemblyやコードが重複してしまうので注意です。
本記事ではPackageSourceというフォルダを作成しコピーしました。
PROJECT_ROOT
└── Assets
└── PackageSource
└── com.unity.addressables@1.19.19
-
PackageManagerからインストール済みのパッケージを削除
-
コピーしたパッケージを
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
Package CacheからパッケージをPackages/に移すとUPM上でローカルパッケージ扱いになりRider/Git管理下に置けると思います。
この方法だと不都合あればスルーしてください