private static void RegenerateList() { if (Packer.m_policies != null) { return; } List <Type> list = new List <Type>(); Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); Assembly[] array = assemblies; for (int i = 0; i < array.Length; i++) { Assembly assembly = array[i]; try { Type[] types = assembly.GetTypes(); Type[] array2 = types; for (int j = 0; j < array2.Length; j++) { Type type = array2[j]; if (typeof(IPackerPolicy).IsAssignableFrom(type) && type != typeof(IPackerPolicy)) { list.Add(type); } } } catch (Exception ex) { Debug.Log(string.Format("SpritePacker failed to get types from {0}. Error: {1}", assembly.FullName, ex.Message)); } } Packer.m_policies = ( from t in list select t.Name).ToArray <string>(); Packer.m_policyTypeCache = new Dictionary <string, Type>(); foreach (Type current in list) { if (Packer.m_policyTypeCache.ContainsKey(current.Name)) { Type type2 = Packer.m_policyTypeCache[current.Name]; Debug.LogError(string.Format("Duplicate Sprite Packer policies found: {0} and {1}. Please rename one.", current.FullName, type2.FullName)); } else { Packer.m_policyTypeCache[current.Name] = current; } } Packer.m_selectedPolicy = ((!string.IsNullOrEmpty(PlayerSettings.spritePackerPolicy)) ? PlayerSettings.spritePackerPolicy : Packer.kDefaultPolicy); if (!Packer.m_policies.Contains(Packer.m_selectedPolicy)) { Packer.SetSelectedPolicy(Packer.kDefaultPolicy); } }
private static void RegenerateList() { if (Packer.m_policies != null) { return; } List <System.Type> source = new List <System.Type>(); foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { try { foreach (System.Type type in assembly.GetTypes()) { if (typeof(IPackerPolicy).IsAssignableFrom(type) && type != typeof(IPackerPolicy)) { source.Add(type); } } } catch (Exception ex) { Debug.Log((object)string.Format("SpritePacker failed to get types from {0}. Error: {1}", (object)assembly.FullName, (object)ex.Message)); } } Packer.m_policies = source.Select <System.Type, string>((Func <System.Type, string>)(t => t.Name)).ToArray <string>(); Packer.m_policyTypeCache = new Dictionary <string, System.Type>(); using (List <System.Type> .Enumerator enumerator = source.GetEnumerator()) { while (enumerator.MoveNext()) { System.Type current = enumerator.Current; if (Packer.m_policyTypeCache.ContainsKey(current.Name)) { System.Type type = Packer.m_policyTypeCache[current.Name]; Debug.LogError((object)string.Format("Duplicate Sprite Packer policies found: {0} and {1}. Please rename one.", (object)current.FullName, (object)type.FullName)); } else { Packer.m_policyTypeCache[current.Name] = current; } } } Packer.m_selectedPolicy = !string.IsNullOrEmpty(PlayerSettings.spritePackerPolicy) ? PlayerSettings.spritePackerPolicy : Packer.kDefaultPolicy; if (((IEnumerable <string>)Packer.m_policies).Contains <string>(Packer.m_selectedPolicy)) { return; } Packer.SetSelectedPolicy(Packer.kDefaultPolicy); }