private void DrawLayerSelection() { var numLayers = animationPlayer.layers.Length; selectedLayer.SetTo(Mathf.Clamp(selectedLayer, 0, numLayers)); var twoLines = Screen.width < 420f; EditorGUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); selectedLayer.SetTo(EditorUtilities.DrawLeftButton(selectedLayer)); EditorGUILayout.LabelField("Selected layer: " + selectedLayer, GUILayout.Width(selectedLayerWidth)); selectedLayer.SetTo(EditorUtilities.DrawRightButton(selectedLayer, numLayers)); if (twoLines) { GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); } else { GUILayout.Space(10f); } if (GUILayout.Button("Add layer", GUILayout.Width(100f))) { EditorUtilities.RecordUndo(animationPlayer, "Add layer to animation player"); EditorUtilities.ExpandArrayByOne(ref animationPlayer.layers, AnimationLayer.CreateLayer); selectedLayer.SetTo(animationPlayer.layers.Length - 1); MarkDirty(); } EditorGUI.BeginDisabledGroup(numLayers < 2); { if (EditorUtilities.AreYouSureButton("Delete layer", "Are you sure?", "DeleteLayer" + selectedLayer, 1f, GUILayout.Width(100f))) { EditorUtilities.RecordUndo(animationPlayer, "Delete layer from animation player"); EditorUtilities.DeleteIndexFromArray(ref animationPlayer.layers, selectedLayer); selectedLayer.SetTo(Mathf.Max(0, selectedLayer - 1)); MarkDirty(); } } EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); }