//------------------------------------------------------------------

    private bool GUI_Enabled()
    {
        bool tileUpdateInProgress = (EasyTerrain.GetUpdateStatusPercentage() < 100) ? true : false;

        GUI.enabled = !tileUpdateInProgress && !Application.isPlaying && (serializedObject.FindProperty("player").objectReferenceValue != null);
        return(GUI.enabled);
    }
    //------------------------------------------------------------------

    void UpdateButtons()
    {
        EditorGUILayout.BeginVertical("Box");
        {
            EditorGUILayout.Space();

            SerializedProperty tileList = serializedObject.FindProperty("tileList");
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.BeginVertical();
                {
                    {
                        //GUI_Enabled();

                        string buttonText = (tileList.arraySize == 0) ? "Create Terrain" : "Update Terrain";
                        if (deleteButtonEnabled)
                        {
                            buttonText = "Delete Terrain";
                        }

                        bool tileUpdateInProgress = (EasyTerrain.GetUpdateStatusPercentage() < 100) ? true : false;
                        if (tileUpdateInProgress)
                        {
                            buttonText = "Stop";
                        }

                        if (GUILayout.Button(buttonText, GUILayout.Width(EditorGUIUtility.currentViewWidth - 100)))
                        {
                            if (!tileUpdateInProgress)
                            {
                                if (!deleteButtonEnabled)
                                {
                                    script.GenerateTerrainTiles();
                                }
                                else
                                {
                                    script.DeleteTerrainTiles();
                                    deleteButtonEnabled = false;
                                }
                            }
                            else
                            {
                                script.StopUpdate();
                            }
                        }
                        GUI.enabled = true;
                    }
                    {
                        string updateStatusPercentageString = "" + Mathf.Round(EasyTerrain.GetUpdateStatusPercentage()) + "%";
                        EditorGUILayout.LabelField("", GUILayout.Width(EditorGUIUtility.currentViewWidth - 100));
                        EditorGUI.ProgressBar(GUILayoutUtility.GetLastRect(), EasyTerrain.GetUpdateStatusPercentage() * 0.01f, updateStatusPercentageString);
                    }
                }
                GUILayout.EndVertical();

                EditorGUILayout.BeginVertical();
                {
                    {
                        GUI_Enabled();
                        deleteButtonEnabled = GUILayout.Toggle(deleteButtonEnabled, "delete", GUILayout.Width(60));
                        GUI.enabled         = true;
                    }
                    {
                        string progressSecondsString = "(" + EasyTerrain.GetStopwatchElapsedSeconds().ToString("F") + " s)";
                        EditorGUILayout.LabelField(progressSecondsString, GUILayout.Width(60));
                    }
                }
                GUILayout.EndVertical();
            }
            EditorGUILayout.EndHorizontal();

            //TileList ();

            EditorGUILayout.Space();
        }
        GUILayout.EndVertical();
    }