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