Esempio n. 1
0
    public override void OnInspectorGUI()
    {
#if UNITY_5_6_OR_NEWER
        serializedObject.UpdateIfRequiredOrScript();
#else
        serializedObject.UpdateIfDirtyOrScript();
#endif

        GUIStyle myStyle = new GUIStyle("label");
        myStyle.richText = true;
        myStyle.wordWrap = true;

#if USE_DOTWEEN
        Undo.RecordObject(LocScript, " ");
#endif

        GUILayout.BeginHorizontal();
        {
            GUILayout.BeginVertical();
            {
                GUILayout.Space(10f);

                Texture2D Logo = AssetDatabase.LoadAssetAtPath("Assets/Trivia 365/Editor/EditorUI/Tk.png", typeof(Texture2D)) as Texture2D;
                if (Logo)
                {
                    GUILayout.Label(Logo);
                }
            }
            GUILayout.EndVertical();

            GUILayout.BeginVertical();
            {
                string Title     = "<size=25>" + "Trivia Kingdom Template" + "</size>";
                string Copyright = "<size=10.5>" + "Copyright © 2017 Mintonne. All rights reserved." + "</size>";

                GUILayout.Label(Title, myStyle, GUILayout.Height(35f));
                GUILayout.Label(Copyright, myStyle);
            }
            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
        }
        GUILayout.EndHorizontal();

        EditorGUILayout.TextArea("", GUI.skin.horizontalSlider);

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button(new GUIContent("Documentation", "Hot off the press."), GUILayout.Height(30)))
        {
            Application.OpenURL("https://docs.google.com/document/d/1S0AQb6gYlFJ4PVpSk0PT14_C1Y50scdcclilF1jX2_I/edit?usp=sharing");
        }

        if (GUILayout.Button(new GUIContent("Official Forum", "Stay in the loop."), GUILayout.Height(30)))
        {
            Application.OpenURL("https://forum.unity3d.com/threads/quizapp-ultimate-trivia-template.402269/");
        }

        if (GUILayout.Button(new GUIContent("Contact Us", "Please leave a message after the beep."), GUILayout.Height(30)))
        {
            if (EditorUtility.DisplayDialog("Support", "Wohoo. We thought we'd never hear from you.\n\nDrop us an email and we will get back to you asap, unless it is a Friday afternoon or a Monday morning :)\n\n-A friend.", "Send email", "Cancel"))
            {
                Application.OpenURL("mailto:[email protected]");
            }
        }

        if (GUILayout.Button(new GUIContent("Rate this asset", "Share your experience with the world."), GUILayout.Height(30)))
        {
            Application.OpenURL("http://u3d.as/oQJ");
        }

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        GUILayout.Space(10f);

#if !USE_DOTWEEN
        GUI.color = Color.green;
        if (GUILayout.Button(new GUIContent("Setup QuizApp"), GUILayout.Height(30)))
        {
            WelcomeTour.ShowWindow();
        }
        GUI.color = Color.white;
#else
        GUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar"), GUILayout.ExpandWidth(true));
        GUILayout.Label("Dashboard");

        if (GUILayout.Button("Expand All", EditorStyles.toolbarButton, GUILayout.Width(65)))
        {
#if SUPPORTED_PLATFORM
            ShowOnesignal = true;
            ShowAdmob     = true;
#endif
            MenuCanvas.isExpanded        = true;
            RetrySplashButton.isExpanded = true;
            QuestionTypes.isExpanded     = true;
            QuestionDisplay.isExpanded   = true;
            AnswerList.isExpanded        = true;
            EnablePausing.isExpanded     = true;
            GameOverResult.isExpanded    = true;
        }

        if (GUILayout.Button("Collapse All", EditorStyles.toolbarButton, GUILayout.Width(71)))
        {
#if SUPPORTED_PLATFORM
            ShowOnesignal = false;
            ShowAdmob     = false;
#endif
            MenuCanvas.isExpanded        = false;
            RetrySplashButton.isExpanded = false;
            QuestionTypes.isExpanded     = false;
            QuestionDisplay.isExpanded   = false;
            AnswerList.isExpanded        = false;
            GameOverResult.isExpanded    = false;
            EnablePausing.isExpanded     = false;
        }
        GUILayout.Space(5);
        GUILayout.EndHorizontal();

#if (SUPPORTED_PLATFORM)
        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(8);
        ShowOnesignal = EditorGUILayout.Foldout(ShowOnesignal, "OneSignal Configuration");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (ShowOnesignal)
        {
#if (USE_ONESIGNAL && SUPPORTED_PLATFORM)
            EditorGUILayout.PropertyField(AppId);

            GUILayout.Space(20);

            GUI.color = Color.red;
            if (GUILayout.Button("Disable push notifications", GUILayout.Height(20)))
            {
                EditorUtility.DisplayDialog("Disable Push Notifications", "Do you want to disable push notifications?", "Yes", "No");
                {
#if UNITY_ANDROID
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.Android;
#elif UNITY_IOS
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.iOS;
#endif

                    var DefineTarget = PlayerSettings.GetScriptingDefineSymbolsForGroup(TargetPlatform);

                    if (DefineTarget.Contains("USE_ONESIGNAL"))
                    {
                        string[]      curDefineSymbols = DefineTarget.Split(defineSeperators, StringSplitOptions.RemoveEmptyEntries);
                        List <string> newDefineSymbols = new List <string> (curDefineSymbols);
                        newDefineSymbols.Remove("USE_ONESIGNAL");
                        PlayerSettings.SetScriptingDefineSymbolsForGroup(TargetPlatform, string.Join(";", newDefineSymbols.ToArray()));
                    }
                }
            }
            GUI.color = Color.white;
#elif (!USE_ONESIGNAL && SUPPORTED_PLATFORM)
            GUI.color = Color.green;
            if (GUILayout.Button("Enable push notifications", GUILayout.Height(20)))
            {
                var option = EditorUtility.DisplayDialogComplex("Enable Push Notifications", "Have you imported the OneSignal Unity Plugin?", "Yes", "No", "Cancel");
                switch (option)
                {
                case 0:
#if UNITY_ANDROID
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.Android;
#elif UNITY_IOS
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.iOS;
#endif

                    var Defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(TargetPlatform);
                    if (Defines.Contains("USE_ONESIGNAL"))
                    {
                        return;
                    }
                    else
                    {
                        string[]      curDefineSymbols = Defines.Split(defineSeperators, StringSplitOptions.RemoveEmptyEntries);
                        List <string> newDefineSymbols = new List <string>(curDefineSymbols);
                        newDefineSymbols.Add("USE_ONESIGNAL");
                        PlayerSettings.SetScriptingDefineSymbolsForGroup(TargetPlatform, string.Join(";", newDefineSymbols.ToArray()));
                    }

                    break;

                case 1:
                    Application.OpenURL("https://github.com/OneSignal/OneSignal-Unity-SDK/releases");
                    break;
                }
            }

            GUI.color = Color.white;
#endif
        }

        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(8);
        ShowAdmob = EditorGUILayout.Foldout(ShowAdmob, "Google Admob Configuration");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (ShowAdmob)
        {
#if (USE_ADMOB && SUPPORTED_PLATFORM)
            EditorGUILayout.HelpBox("The ad appears when the game ends based on the frequency you set below.", MessageType.Info);
            EditorGUILayout.PropertyField(InterstitialAdUnitId);
            EditorGUILayout.PropertyField(AdFrequency);

            GUILayout.Space(10);

            EditorGUILayout.PropertyField(TestMode);

            if (TestMode.boolValue)
            {
                EditorGUILayout.PropertyField(AdmobTestID);
            }

            GUILayout.Space(20);

            GUI.color = Color.red;
            if (GUILayout.Button("Disable Admob Ads", GUILayout.Height(20)))
            {
                EditorUtility.DisplayDialog("Disable Admob Ads", "Do you want to disable Admob Ads?", "Yes", "No");
                {
#if UNITY_ANDROID
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.Android;
#elif UNITY_IOS
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.iOS;
#endif

                    var DefineTarget = PlayerSettings.GetScriptingDefineSymbolsForGroup(TargetPlatform);

                    if (DefineTarget.Contains("USE_ADMOB"))
                    {
                        string[]      curDefineSymbols = DefineTarget.Split(defineSeperators, StringSplitOptions.RemoveEmptyEntries);
                        List <string> newDefineSymbols = new List <string> (curDefineSymbols);
                        newDefineSymbols.Remove("USE_ADMOB");
                        PlayerSettings.SetScriptingDefineSymbolsForGroup(TargetPlatform, string.Join(";", newDefineSymbols.ToArray()));
                    }
                }
            }
            GUI.color = Color.white;
#elif (!USE_ADMOB && SUPPORTED_PLATFORM)
            GUI.color = Color.green;
            if (GUILayout.Button("Enable Admob Ads", GUILayout.Height(20)))
            {
                var option = EditorUtility.DisplayDialogComplex("Enable Admob Ads", "Have you imported the Admob Unity Plugin?", "Yes", "No", "Cancel");
                switch (option)
                {
                case 0:
#if UNITY_ANDROID
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.Android;
#elif UNITY_IOS
                    BuildTargetGroup TargetPlatform = BuildTargetGroup.iOS;
#endif

                    var Defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(TargetPlatform);
                    if (Defines.Contains("USE_ADMOB"))
                    {
                        return;
                    }
                    else
                    {
                        string[]      curDefineSymbols = Defines.Split(defineSeperators, StringSplitOptions.RemoveEmptyEntries);
                        List <string> newDefineSymbols = new List <string>(curDefineSymbols);
                        newDefineSymbols.Add("USE_ADMOB");
                        PlayerSettings.SetScriptingDefineSymbolsForGroup(TargetPlatform, string.Join(";", newDefineSymbols.ToArray()));
                    }
                    break;

                case 1:
                    Application.OpenURL("https://github.com/googleads/googleads-mobile-unity/releases");
                    break;
                }
            }

            GUI.color = Color.white;
#endif
        }

        GUILayout.EndVertical();
#endif

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        MenuCanvas.isExpanded = EditorGUILayout.Foldout(MenuCanvas.isExpanded, "Game Canvases");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (MenuCanvas.isExpanded)
        {
            EditorGUILayout.PropertyField(SplashScreen);
            EditorGUILayout.PropertyField(MenuCanvas);
            EditorGUILayout.PropertyField(GameCanvas);
            EditorGUILayout.PropertyField(PauseCanvas);
            EditorGUILayout.PropertyField(GameOverCanvas);
            EditorGUILayout.PropertyField(ReviewCanvas);
            EditorGUILayout.PropertyField(ReviewTestCanvas);
        }

        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        RetrySplashButton.isExpanded = EditorGUILayout.Foldout(RetrySplashButton.isExpanded, "Splash Screen UI");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (RetrySplashButton.isExpanded)
        {
            EditorGUILayout.PropertyField(RetrySplashButton);
            EditorGUILayout.PropertyField(SplashScreenLoading);
        }

        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        QuestionTypes.isExpanded = EditorGUILayout.Foldout(SoundImage.isExpanded, "Menu UI");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (QuestionTypes.isExpanded)
        {
            EditorGUILayout.PropertyField(QuestionTypes);
            EditorGUILayout.PropertyField(QuizMode);
            EditorGUILayout.PropertyField(SoundImage);
            EditorGUILayout.PropertyField(ActiveSoundImage);
            EditorGUILayout.PropertyField(VibrateImage);
            EditorGUILayout.PropertyField(ActiveVibrateImage);
            EditorGUILayout.PropertyField(MenuHandler);
            EditorGUILayout.PropertyField(Confirmation);
        }

        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        QuestionDisplay.isExpanded = EditorGUILayout.Foldout(QuestionDisplay.isExpanded, "Game UI");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (QuestionDisplay.isExpanded)
        {
            EditorGUILayout.PropertyField(ImageLoadingAnimation);
            EditorGUILayout.PropertyField(ImageErrorPanel);
            EditorGUILayout.PropertyField(QuestionDisplay);
            EditorGUILayout.PropertyField(AnswerList);
            EditorGUILayout.PropertyField(ImageDisplay);
            EditorGUILayout.PropertyField(ResultDisplay);
            EditorGUILayout.PropertyField(QuizCounter);
            EditorGUILayout.PropertyField(QuitPanel);
            EditorGUILayout.PropertyField(ReturnPanel);
            EditorGUILayout.PropertyField(StarButton);
            EditorGUILayout.PropertyField(ActiveStar);
            EditorGUILayout.PropertyField(InactiveStar);
        }

        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        GameOverResult.isExpanded = EditorGUILayout.Foldout(GameOverResult.isExpanded, "GameOver UI");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (GameOverResult.isExpanded)
        {
            EditorGUILayout.PropertyField(GameOverResult);
            EditorGUILayout.PropertyField(GameOverTip);
            EditorGUILayout.PropertyField(PointsText);
            EditorGUILayout.PropertyField(BonusPointsText);
            EditorGUILayout.PropertyField(GameOverPercentage);
            EditorGUILayout.PropertyField(GameOverCircle);
        }
        GUILayout.EndVertical();

        GUILayout.BeginVertical(m_Background);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(5);
        EnablePausing.isExpanded = EditorGUILayout.Foldout(EnablePausing.isExpanded, "Game Variables");
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        if (EnablePausing.isExpanded)
        {
            EditorGUILayout.PropertyField(Mode);

            if (LocScript.Mode == DownloadMode.Online)
            {
                GUI.color = Color.red;

                if (LocScript.OnlinePath.Length < 1)
                {
                    EditorGUILayout.HelpBox("Enter the URL to the XML in the field below", MessageType.None);
                }
                else
                {
                    GUI.color = Color.green;
                    EditorGUILayout.HelpBox("Download URL is set", MessageType.None);
                }

                GUI.color = Color.white;

                EditorGUILayout.PropertyField(OnlinePath);
            }
            else if (LocScript.Mode == DownloadMode.Offline)
            {
                GUI.color = Color.red;

                if (LocScript.OfflinePath.Length < 1)
                {
                    EditorGUILayout.HelpBox("Enter the Resources folder path to the XML in the field below", MessageType.None);
                }
                else
                {
                    GUI.color = Color.green;
                    EditorGUILayout.HelpBox("Resources path is set", MessageType.None);
                }

                GUI.color = Color.white;
                EditorGUILayout.PropertyField(OfflinePath);
            }
            else
            {
                EditorGUILayout.HelpBox("Enter the URL (optional) & Resources folder path (required) to the XML respectively in the fields below", MessageType.Info);
                EditorGUILayout.PropertyField(OnlinePath);
                EditorGUILayout.PropertyField(OfflinePath);
            }
            EditorGUILayout.PropertyField(FreeVersion);
            EditorGUILayout.PropertyField(EnableShuffle);
            EditorGUILayout.PropertyField(TimeOut);
            EditorGUILayout.PropertyField(QuestionCount);
            EditorGUILayout.PropertyField(PointsPerAnswer);
            EditorGUILayout.PropertyField(TimeBonusPoints);
            EditorGUILayout.PropertyField(TimerAmount);
            EditorGUILayout.PropertyField(CorrectColor);
            EditorGUILayout.PropertyField(FailColor);
            EditorGUILayout.PropertyField(ButtonColor);
            EditorGUILayout.PropertyField(CorrectSound);
            EditorGUILayout.PropertyField(FailSound);
            EditorGUILayout.PropertyField(RedToggle);
            EditorGUILayout.PropertyField(GreenToggle);
            EditorGUILayout.PropertyField(EnablePausing);

            EditorGUILayout.PropertyField(AnswersAvailable, true);
        }

        GUILayout.EndVertical();

        serializedObject.ApplyModifiedProperties();
#endif
    }
Esempio n. 2
0
 private void ShowWelcome_Click(object sender, RoutedEventArgs e)
 {
     WelcomeTour.Show();
 }