// 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); }
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; }