コード例 #1
0
        internal PlatformIcon[] GetPlatformIcons(BuildTargetGroup platform, PlatformIconKind kind, ref BuildTargetIcons[] allIcons)
        {
            var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(platform);
            var serializedIcons  = PlayerSettings.GetPlatformIconsFromTargetIcons(namedBuildTarget.TargetName, kind.kind, allIcons);
            var provider         = PlayerSettings.GetPlatformIconProvider(namedBuildTarget);

            if (m_RequiredIcons == null)
            {
                m_RequiredIcons = new Dictionary <PlatformIconKind, PlatformIcon[]>();
            }
            if (!m_RequiredIcons.ContainsKey(kind))
            {
                var requiredIcons = provider.GetRequiredPlatformIcons();
                foreach (var requiredIcon in requiredIcons)
                {
                    if (!m_RequiredIcons.ContainsKey(requiredIcon.Key))
                    {
                        m_RequiredIcons.Add(requiredIcon.Key, requiredIcon.Value);
                    }
                }
            }

            var icons = PlatformIcon.GetRequiredPlatformIconsByType(provider, kind, m_RequiredIcons);

            if (serializedIcons.Length <= 0)
            {
                // Map legacy icons to required icons
                ImportLegacyIcons(namedBuildTarget.TargetName, kind, icons, m_AllLegacyIcons);
                // Serialize required icons
                SetPlatformIcons(platform, kind, icons, ref allIcons);

                foreach (var icon in icons)
                {
                    if (icon.IsEmpty())
                    {
                        icon.SetTextures(null);
                    }
                }
            }
            else
            {
                // Map serialized icons to required icons
                icons = PlayerSettings.GetPlatformIconsFromStruct(icons, kind, serializedIcons.ToArray());
            }

            return(icons);
        }