/// <summary> /// /// </summary> public virtual void DoButtonsFoldout() { GUILayout.BeginHorizontal(GUILayout.MaxWidth(210)); m_ButtonsFoldout = EditorGUILayout.Foldout(m_ButtonsFoldout, m_ButtonsFoldout && m_Component.ButtonKeys.Count > 0 ? "Button Name" : "Buttons"); if (m_ButtonsFoldout && m_Component.ButtonKeys.Count > 0) { GUILayout.Space(80); EditorGUILayout.LabelField("Key"); } GUILayout.EndHorizontal(); if (m_ButtonsFoldout) { if (m_Component.ButtonKeys != null) { GUILayout.Space(10); for (int i = 0; i < m_Component.ButtonKeys.Count; ++i) { GUILayout.BeginHorizontal(); GUILayout.Space(20); m_Component.ButtonKeys[i] = EditorGUILayout.TextField(m_Component.ButtonKeys[i], GUILayout.MaxWidth(100), GUILayout.MinWidth(100)); GUILayout.Space(10); m_Component.ButtonValues[i] = (KeyCode)EditorGUILayout.EnumPopup(m_Component.ButtonValues[i]); m_Component.Buttons[m_Component.ButtonKeys[i]] = (KeyCode)m_Component.ButtonValues[i]; if (GUILayout.Button("Remove", vp_EditorGUIUtility.SmallButtonStyle, GUILayout.MinWidth(50), GUILayout.MaxWidth(50), GUILayout.MinHeight(15))) { m_Component.ButtonKeys.RemoveAt(i); m_Component.ButtonValues.RemoveAt(i); --i; } GUI.backgroundColor = Color.white; GUILayout.Space(20); GUILayout.EndHorizontal(); GUILayout.Space(5); } } if (m_Component.ButtonKeys.Count == 0) { GUILayout.BeginHorizontal(); GUILayout.Space(20); EditorGUILayout.HelpBox("There are no Input Buttons. Click \"Add Input Button\" to add a new button or \"Restore Defaults\" To restore the default buttons.", MessageType.Info); GUILayout.Space(20); GUILayout.EndHorizontal(); } GUILayout.Space(8f); GUILayout.BeginHorizontal(); GUILayout.Space(10f); if (GUILayout.Button("Add Input Button", GUILayout.MinWidth(150), GUILayout.MinHeight(25))) { m_Component.AddButton("Button " + m_Component.ButtonKeys.Count, KeyCode.None); } if (m_Component.ButtonKeys.Count == 0) { if (GUILayout.Button("Restore Button Defaults", GUILayout.MinWidth(150), GUILayout.MinHeight(25))) { m_Component.SetupDefaults("Buttons"); } } GUI.backgroundColor = Color.white; GUILayout.Space(10f); GUILayout.EndHorizontal(); DrawSeparator(); } }