void OnEnable()
        {
            Foliage2D_Sprite sprite = (Foliage2D_Sprite)target;

            if (sprite.GetComponent <MeshFilter>().sharedMesh == null)
            {
                sprite.RebuildMesh();
            }
        }
        //------------------------------------------------------------------------------

        private void CustomInspector(Foliage2D_Sprite foliage2D_sprite)
        {
            showVisuals = EditorGUILayout.Foldout(showVisuals, "Visual Properties");

            if (showVisuals)
            {
                EditorGUI.indentLevel = 1;

                foliage2D_sprite.pixelsPerUnit  = Mathf.Clamp(EditorGUILayout.FloatField("Pixels Per Unit", foliage2D_sprite.pixelsPerUnit), 1, 768);
                foliage2D_sprite.widthSegments  = Mathf.Clamp(EditorGUILayout.IntField("With Segments", foliage2D_sprite.widthSegments), 1, 100);
                foliage2D_sprite.heightSegments = Mathf.Clamp(EditorGUILayout.IntField("Height Segments", foliage2D_sprite.heightSegments), 1, 100);

                Type utility = Type.GetType("UnityEditorInternal.InternalEditorUtility, UnityEditor");
                if (utility != null)
                {
                    PropertyInfo sortingLayerNames = utility.GetProperty("sortingLayerNames", BindingFlags.Static | BindingFlags.NonPublic);
                    if (sortingLayerNames != null)
                    {
                        string[] layerNames = sortingLayerNames.GetValue(null, null) as string[];
                        string   currName   = foliage2D_sprite.GetComponent <Renderer>().sortingLayerName == "" ? "Default" : foliage2D_sprite.GetComponent <Renderer>().sortingLayerName;
                        int      nameID     = EditorGUILayout.Popup("Sorting Layer", Array.IndexOf(layerNames, currName), layerNames);

                        foliage2D_sprite.GetComponent <Renderer>().sortingLayerName = layerNames[nameID];
                    }
                    else
                    {
                        foliage2D_sprite.GetComponent <Renderer>().sortingLayerID = EditorGUILayout.IntField("Sorting Layer", foliage2D_sprite.GetComponent <Renderer>().sortingLayerID);
                    }
                }
                else
                {
                    foliage2D_sprite.GetComponent <Renderer>().sortingLayerID = EditorGUILayout.IntField("Sorting Layer", foliage2D_sprite.GetComponent <Renderer>().sortingLayerID);
                }
                foliage2D_sprite.GetComponent <Renderer>().sortingOrder = EditorGUILayout.IntField("Order in Layer", foliage2D_sprite.GetComponent <Renderer>().sortingOrder);
            }
            EditorGUI.indentLevel = 0;

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
                foliage2D_sprite.RebuildMesh();
            }
        }
        // Inspector Fields
        public override void OnInspectorGUI()
        {
            Foliage2D_Sprite foliage2D = (Foliage2D_Sprite)target;

            CustomInspector(foliage2D);
        }