ソースコード
using System.Linq;
using UnityEditor;
using UnityEditor.PackageManager;
using UnityEditor.PackageManager.Requests;
using UnityEngine;
internal static class Example
{
private static ListRequest m_request;
[MenuItem( "Tools/Hoge" )]
private static void Hoge()
{
m_request = Client.List( true );
EditorApplication.update += OnUpdate;
}
private static void OnUpdate()
{
if ( !m_request.IsCompleted ) return;
EditorApplication.update -= OnUpdate;
if ( m_request.Status != StatusCode.Success ) return;
var packageCollection = m_request.Result
.Where( x => x.isDirectDependency )
.Where( x => !x.name.StartsWith( "com.unity." ) )
;
foreach ( var packageInfo in packageCollection )
{
Debug.Log( packageInfo.name );
}
}
}