示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }