本日はUnity枠です。
UnityEditor拡張を使用して現在のUnityプロジェクトにインポートされているパッケージを取得していきます。
〇インポートされているパッケージを取得する
インポートされているパッケージを取得するためには次のようなコードを使用します。
static void getImportedPackages()
{
packages = new List<string>();
ListRequest request = Client.List();
EditorApplication.update += OnUpdate;
void OnUpdate()
{
if (request.IsCompleted)
{
if (request.Status == StatusCode.Success)
{
foreach (var package in request.Result)
{
Debug.Log(package.name);
packages.Add(package.name);
}
}
else if (request.Status >= StatusCode.Failure)
{
Debug.LogError(request.Error.message);
}
EditorApplication.update -= OnUpdate;
}
}
}
実行するとコンソールにプロジェクトにインポートされているパッケージが表示されます。

ListRequest request = Client.List();でUnityのパッケージマネージャーに対してのリクエストを行っています。
if (request.IsCompleted)でrequestの取得が完了したかを検知しています。
もしうまく成功していない場合はDebug.LogError(request.Error.message);でエラーが出るようになっています。
成功した場合はforeach文で取得したパッケージ名をログとして出力、またString型のリストに格納しています。
これによって現在インポートされているパッケージを取得することができました。