Пример #1
0
 public static bool Matches(VersionInfo version)
 {
     return((Major == version.m_major) && (Minor == version.m_minor) && (Release == version.m_release) && (Revision == version.m_revision));
 }
Пример #2
0
        public void OnGUI()
        {
            if (!m_infoDownloaded)
            {
                m_infoDownloaded = true;

                StartBackgroundTask(StartRequest(ChangelogURL, () =>
                {
                    var temp = ChangeLogInfo.CreateFromJSON(www.downloadHandler.text);
                    if (temp != null && temp.Version >= m_changeLog.Version)
                    {
                        m_changeLog = temp;
                    }
                    // improve this later
                    int major    = m_changeLog.Version / 10000;
                    int minor    = (m_changeLog.Version / 1000) - major * 10;
                    int release  = (m_changeLog.Version / 100) - major * 100 - minor * 10;
                    int revision = ((m_changeLog.Version / 10) - major * 1000 - minor * 100 - release * 10) + (m_changeLog.Version - major * 10000 - minor * 1000 - release * 100);
                    m_newVersion = major + "." + minor + "." + release + "r" + revision;
                    Repaint();
                }));
            }

            if (m_buttonStyle == null)
            {
                m_buttonStyle           = new GUIStyle(GUI.skin.button);
                m_buttonStyle.alignment = TextAnchor.MiddleLeft;
            }

            if (m_buttonLeftStyle == null)
            {
                m_buttonLeftStyle              = new GUIStyle("ButtonLeft");
                m_buttonLeftStyle.alignment    = TextAnchor.MiddleLeft;
                m_buttonLeftStyle.margin       = m_buttonStyle.margin;
                m_buttonLeftStyle.margin.right = 0;
            }

            if (m_buttonRightStyle == null)
            {
                m_buttonRightStyle             = new GUIStyle("ButtonRight");
                m_buttonRightStyle.alignment   = TextAnchor.MiddleLeft;
                m_buttonRightStyle.margin      = m_buttonStyle.margin;
                m_buttonRightStyle.margin.left = 0;
            }

            if (m_minibuttonStyle == null)
            {
                m_minibuttonStyle                  = new GUIStyle("MiniButton");
                m_minibuttonStyle.alignment        = TextAnchor.MiddleLeft;
                m_minibuttonStyle.margin           = m_buttonStyle.margin;
                m_minibuttonStyle.margin.left      = 20;
                m_minibuttonStyle.normal.textColor = m_buttonStyle.normal.textColor;
                m_minibuttonStyle.hover.textColor  = m_buttonStyle.hover.textColor;
            }

            if (m_labelStyle == null)
            {
                m_labelStyle          = new GUIStyle("BoldLabel");
                m_labelStyle.margin   = new RectOffset(4, 4, 4, 4);
                m_labelStyle.padding  = new RectOffset(2, 2, 2, 2);
                m_labelStyle.fontSize = 13;
            }

            if (m_linkStyle == null)
            {
                var inv = AssetDatabase.LoadAssetAtPath <Texture2D>(AssetDatabase.GUIDToAssetPath("1004d06b4b28f5943abdf2313a22790a"));                    // find a better solution for transparent buttons
                m_linkStyle = new GUIStyle();
                m_linkStyle.normal.textColor  = new Color(0.2980392f, 0.4901961f, 1f);
                m_linkStyle.hover.textColor   = Color.white;
                m_linkStyle.active.textColor  = Color.grey;
                m_linkStyle.margin.top        = 3;
                m_linkStyle.margin.bottom     = 2;
                m_linkStyle.hover.background  = inv;
                m_linkStyle.active.background = inv;
            }

            EditorGUILayout.BeginHorizontal(GUIStyle.none, GUILayout.ExpandWidth(true));
            {
                // left column
                EditorGUILayout.BeginVertical(GUILayout.Width(175));
                {
                    GUILayout.Label(SamplesTitle, m_labelStyle);
                    EditorGUILayout.BeginHorizontal();
                    if (GUILayout.Button(HDRPbutton, m_buttonLeftStyle))
                    {
                        ImportSample(HDRPbutton.text, HighDefinitionGUID);
                    }

                    if (GUILayout.Button(DownArrow, m_buttonRightStyle, GUILayout.Width(DownButtonSize), GUILayout.Height(DownButtonSize)))
                    {
                        m_showHDRP = !m_showHDRP;
                        m_showLWRP = false;
                    }
                    EditorGUILayout.EndHorizontal();
                    if (m_showHDRP)
                    {
                        if (GUILayout.Button(HDRPOLDbutton, m_minibuttonStyle))
                        {
                            ImportSample(HDRPOLDbutton.text, OLDHighDefinitionGUID);
                        }
                    }
                    EditorGUILayout.BeginHorizontal();
                    if (GUILayout.Button(URPbutton, m_buttonLeftStyle))
                    {
                        ImportSample(URPbutton.text, UniversalGUID);
                    }

                    if (GUILayout.Button(DownArrow, m_buttonRightStyle, GUILayout.Width(DownButtonSize), GUILayout.Height(DownButtonSize)))
                    {
                        m_showLWRP = !m_showLWRP;
                        m_showHDRP = false;
                    }
                    EditorGUILayout.EndHorizontal();
                    if (m_showLWRP)
                    {
                        EditorGUILayout.BeginVertical();
                        if (GUILayout.Button(LWRPbutton, m_minibuttonStyle))
                        {
                            ImportSample(LWRPbutton.text, LightWeightGUID);
                        }
                        if (GUILayout.Button(LWRPOLDbutton, m_minibuttonStyle))
                        {
                            ImportSample(LWRPOLDbutton.text, OLDLightWeightGUID);
                        }
                        EditorGUILayout.EndVertical();
                    }
                    if (GUILayout.Button(BuiltInbutton, m_buttonStyle))
                    {
                        ImportSample(BuiltInbutton.text, BuiltInGUID);
                    }

                    GUILayout.Space(10);

                    GUILayout.Label(ResourcesTitle, m_labelStyle);
                    if (GUILayout.Button(Manualbutton, m_buttonStyle))
                    {
                        Application.OpenURL(ManualURL);
                    }

                    if (GUILayout.Button(Basicbutton, m_buttonStyle))
                    {
                        Application.OpenURL(BasicURL);
                    }

                    if (GUILayout.Button(Beginnerbutton, m_buttonStyle))
                    {
                        Application.OpenURL(BeginnerURL);
                    }

                    if (GUILayout.Button(Nodesbutton, m_buttonStyle))
                    {
                        Application.OpenURL(NodesURL);
                    }

                    if (GUILayout.Button(SRPusebutton, m_buttonStyle))
                    {
                        Application.OpenURL(SRPURL);
                    }

                    if (GUILayout.Button(Functionsbutton, m_buttonStyle))
                    {
                        Application.OpenURL(FunctionsURL);
                    }

                    if (GUILayout.Button(Templatesbutton, m_buttonStyle))
                    {
                        Application.OpenURL(TemplatesURL);
                    }

                    if (GUILayout.Button(APIbutton, m_buttonStyle))
                    {
                        Application.OpenURL(APIURL);
                    }
                }
                EditorGUILayout.EndVertical();

                // right column
                EditorGUILayout.BeginVertical(GUILayout.Width(650 - 175 - 9), GUILayout.ExpandHeight(true));
                {
                    GUILayout.Label(CommunityTitle, m_labelStyle);
                    EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
                    {
                        if (GUILayout.Button(DiscordButton, GUILayout.ExpandWidth(true)))
                        {
                            Application.OpenURL(DiscordURL);
                        }
                        if (GUILayout.Button(ForumButton, GUILayout.ExpandWidth(true)))
                        {
                            Application.OpenURL(ForumURL);
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                    GUILayout.Label(UpdateTitle, m_labelStyle);
                    m_scrollPosition = GUILayout.BeginScrollView(m_scrollPosition, "ProgressBarBack", GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
                    GUILayout.Label(m_changeLog.LastUpdate, "WordWrappedMiniLabel", GUILayout.ExpandHeight(true));
                    GUILayout.EndScrollView();

                    EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
                    {
                        EditorGUILayout.BeginVertical();
                        GUILayout.Label(ASETitle, m_labelStyle);

                        GUILayout.Label("Installed Version: " + VersionInfo.StaticToString());

                        if (m_changeLog.Version > VersionInfo.FullNumber)
                        {
                            var cache = GUI.color;
                            GUI.color = Color.red;
                            GUILayout.Label("New version available: " + m_newVersion, "BoldLabel");
                            GUI.color = cache;
                        }
                        else
                        {
                            var cache = GUI.color;
                            GUI.color = Color.green;
                            GUILayout.Label("You are using the latest version", "BoldLabel");
                            GUI.color = cache;
                        }

                        EditorGUILayout.BeginHorizontal();
                        GUILayout.Label("Download links:");
                        if (GUILayout.Button("Amplify", m_linkStyle))
                        {
                            Application.OpenURL(SiteURL);
                        }
                        GUILayout.Label("-");
                        if (GUILayout.Button("Asset Store", m_linkStyle))
                        {
                            Application.OpenURL(StoreURL);
                        }
                        EditorGUILayout.EndHorizontal();
                        GUILayout.Space(7);
                        EditorGUILayout.EndVertical();

                        GUILayout.FlexibleSpace();
                        EditorGUILayout.BeginVertical();
                        GUILayout.Space(7);
                        GUILayout.Label(ASEIcon);
                        EditorGUILayout.EndVertical();
                    }
                    EditorGUILayout.EndHorizontal();
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.BeginHorizontal("ProjectBrowserBottomBarBg", GUILayout.ExpandWidth(true), GUILayout.Height(22));
            {
                GUILayout.FlexibleSpace();
                EditorGUI.BeginChangeCheck();
                var cache = EditorGUIUtility.labelWidth;
                EditorGUIUtility.labelWidth = 100;
                m_startup = (Preferences.ShowOption)EditorGUILayout.EnumPopup("Show At Startup", m_startup, GUILayout.Width(220));
                EditorGUIUtility.labelWidth = cache;
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetInt(Preferences.PrefStartUp, (int)m_startup);
                }
            }
            EditorGUILayout.EndHorizontal();

            // Find a better way to update link buttons without repainting the window
            Repaint();
        }