ソースコード
using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tool/Log" )] private static void Log() { foreach ( var (key, value) in GetEditorPrefsKeyValuePairAll().OrderBy( x => x.key ) ) { Debug.Log( key + ": " + value ); } } private static IEnumerable<(string key, object value)> GetEditorPrefsKeyValuePairAll() { var name = @"Software\Unity Technologies\Unity Editor 5.x\"; using ( var registryKey = Registry.CurrentUser.OpenSubKey( name, false ) ) { foreach ( var valueName in registryKey.GetValueNames() ) { var value = registryKey.GetValue( valueName ); var key = valueName.Split( new[] { "_h" }, StringSplitOptions.None )[ 0 ]; if ( value is byte[] byteValue ) { yield return ( key, Encoding.UTF8.GetString( byteValue ) ); } else { yield return ( key, value ); } } } } }