/// <summary>
        /// Perform startup check to show window 1 time only.
        /// </summary>
        static void Update()
        {
            // Show startup window if do not show hasn't been set
            if (EditorPrefs.GetBool(AutoShowPrefsKey, true))
            {
                ShowWindow();
            }

            // Add GAME_FRAMEWORK define if not already set.
            if (!PlayerSettingsHelper.IsScriptingDefineSet("GAME_FRAMEWORK"))
            {
                PlayerSettingsHelper.AddScriptingDefineAllTargets("GAME_FRAMEWORK");
            }

            EditorApplication.update -= Update;
        }
        void ShowAsset(string assetName, string defineName, string url, string description, string urlName, string folder = null, Texture2D icon = null, bool isInBundle = false)
        {
            EditorGUILayout.BeginVertical("Box");

            GUILayout.BeginHorizontal();
            GUI.enabled = folder == null || AssetDatabase.IsValidFolder(folder);
            if (defineName != null)
            {
                if (GUILayout.Toggle(PlayerSettingsHelper.IsScriptingDefineSet(defineName), ""))
                {
                    PlayerSettingsHelper.AddScriptingDefineAllTargets(defineName);
                }
                else
                {
                    PlayerSettingsHelper.RemoveScriptingDefineAllTargets(defineName);
                }
            }
            GUI.enabled = true;
            GUILayout.Label(assetName, new GUIStyle(EditorStyles.boldLabel)
            {
                padding = new RectOffset(5, 5, 5, 5), margin = new RectOffset(0, 0, 0, 0)
            });
            GUILayout.FlexibleSpace();
            if (EditorHelper.LinkButton(urlName, true))
            {
                Application.OpenURL(url);
            }
            if (isInBundle)
            {
                GUILayout.Label(" | ");
                if (EditorHelper.LinkButton("Extras Bundle", true))
                {
                    GameFrameworkHelper.ShowAssetStorePageExtrasBundle();
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            if (icon != null)
            {
                GUILayout.Label(icon, GUILayout.Width(64), GUILayout.Height(64));
            }
            EditorGUILayout.HelpBox(description, MessageType.None);
            GUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
        }