public static List <string> GetLabels() { AddressableAssetSettings settings = UnityEditor.AddressableAssets.AddressableAssetSettingsDefaultObject.Settings; BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic; object labelTable = settings.GetType().GetProperty("labelTable", bindingFlags).GetValue(settings); List <string> labelNames = (List <string>)labelTable.GetType().GetProperty("labelNames", bindingFlags).GetValue(labelTable); return(labelNames); }
private static void GetAllExistLabels() { var tableProp = addressableSettings.GetType().GetProperty("labelTable", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); if (tableProp == null) { return; } var tableInstance = tableProp.GetValue(addressableSettings); if (tableInstance == null) { return; } var labelFiled = tableInstance.GetType().GetField("m_LabelNames", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); if (labelFiled == null) { return; } if (!(labelFiled.GetValue(tableInstance) is List <string> labelList)) { return; } if (labels != null) { labels.Clear(); foreach (var lab in labelList) { labels.Add(lab); } } else { labels = new HashSet <string>(labelList); } }