コード例 #1
0
ファイル: Packer.cs プロジェクト: zhkuang/UnityDecompiled
        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);
            }
        }
コード例 #2
0
        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);
        }