示例#1
0
        // Loops through 'requiredIconSlots' and fills it with icons that are already serialized.
        public static PlatformIcon[] GetPlatformIcons(BuildTargetGroup platform, PlatformIconKind kind)
        {
            IPlatformIconProvider platformIconProvider = GetPlatformIconProvider(platform);

            if (platformIconProvider == null)
            {
                return new PlatformIcon[] {}
            }
            ;

            string platformName = PlayerSettings.GetPlatformName(platform);

            PlatformIconStruct[] serializedIcons = GetPlatformIconsInternal(platformName, kind.kind);
            PlatformIcon[]       icons           = PlatformIcon.GetRequiredPlatformIconsByType(platformIconProvider, kind);

            if (serializedIcons.Length <= 0)
            {
                ImportLegacyIcons(platform, kind, icons);

                SetPlatformIcons(platform, kind, icons);

                foreach (var icon in icons)
                {
                    if (icon.IsEmpty())
                    {
                        icon.SetTextures(null);
                    }
                }
            }
            else
            {
                foreach (PlatformIcon icon in icons)
                {
                    foreach (PlatformIconStruct serializedIcon in serializedIcons)
                    {
                        int requiredKind = kind.Equals(PlatformIconKind.Any) ? serializedIcon.m_Kind : kind.kind;
                        if (icon.kind.kind == requiredKind && icon.iconSubKind == serializedIcon.m_SubKind)
                        {
                            if (icon.width == serializedIcon.m_Width && icon.height == serializedIcon.m_Height)
                            {
                                Texture2D[] serializedTextures =
                                    serializedIcon.m_Textures.Take(icon.maxLayerCount).ToArray();
                                Texture2D[] textures = new Texture2D[serializedTextures.Length > icon.minLayerCount
                                                                     ? serializedTextures.Length
                                                                     : icon.minLayerCount];

                                for (int i = 0; i < serializedTextures.Length; i++)
                                {
                                    textures[i] = serializedTextures[i];
                                }

                                icon.SetTextures(textures);
                                break;
                            }
                        }
                    }
                }
            }
            return(icons);
        }
示例#2
0
 internal PlatformIconKind(int kind, string kindString, BuildTargetGroup platform, string[] customLayerLabels = null)
 {
     this.kind              = kind;
     this.platform          = PlayerSettings.GetPlatformName(platform);
     this.kindString        = kindString;
     this.customLayerLabels = customLayerLabels;
 }