ソースコード
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 ); } } }