private void DrawSplashLogos() { var logos = _target.splash.logos; for (int i = 0; i < logos.Count; i++) { var logo = logos[i]; EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); var newLogo = EditorGUIExtensions.SpriteField($"Logo {i}", logo); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(_target, "Edited Build Preferences"); logos[i] = newLogo; } if (!newLogo) { EditorGUILayout.HelpBox("Logo is null", MessageType.Warning); } if (GUILayout.Button("Remove")) { Undo.RecordObject(_target, "Edited Build Preferences"); logos.RemoveAt(i--); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("Add logo")) { Undo.RecordObject(_target, "Edited Build Preferences"); logos.Add(null); } if ((logos == null || logos.Count <= 0)) { EditorGUILayout.HelpBox("No logos defined.", MessageType.Warning); } }
private void DrawSplashLogos() { var logos = PlayerSettings.SplashScreen.logos.ToList(); for (int i = 0; i < logos.Count; i++) { var logo = logos[i]; EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); var newLogo = EditorGUIExtensions.SpriteField($"Logo {i}", logo.logo); if (_settings.SelectedPreferences.splash.Required && !_settings.SelectedPreferences.splash.logos.Contains(logo.logo)) { EditorGUILayout.HelpBox("This logo wasn't expected by preferences.", MessageType.Warning); } if (EditorGUI.EndChangeCheck()) { logo.logo = newLogo; logos[i] = logo; PlayerSettings.SplashScreen.logos = logos.ToArray(); } if (GUILayout.Button("Remove")) { logos.RemoveAt(i--); PlayerSettings.SplashScreen.logos = logos.ToArray(); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("Add logo")) { logos.Add(new PlayerSettings.SplashScreenLogo()); PlayerSettings.SplashScreen.logos = logos.ToArray(); } foreach (var prefLogo in _settings.SelectedPreferences.splash.logos) { if (prefLogo == null) { continue; } bool found = false; foreach (var existingLogo in logos) { if (existingLogo.logo == prefLogo) { found = true; } } if (!found) { if (_settings.SelectedPreferences.splash.Required && EditorGUIExtensions.DrawFixHelpBox($"Logo {prefLogo.name} wasn't added.")) { var newLogo = new PlayerSettings.SplashScreenLogo(); newLogo.logo = prefLogo; logos.Add(newLogo); PlayerSettings.SplashScreen.logos = logos.ToArray(); } } } if (_settings.SelectedPreferences.splash.Required && (logos == null || logos.Count <= 0)) { EditorGUILayout.HelpBox("App has logos.", MessageType.Warning); } }