GUIStyleViewer.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using UnityEngine;
  2. using UnityEditor;
  3. public class GUIStyleViewer : EditorWindow
  4. {
  5. private Vector2 scrollVector2 = Vector2.zero;
  6. private string search = "";
  7. [MenuItem("Tools/GUIStyle查看器")]
  8. public static void InitWindow()
  9. {
  10. EditorWindow.GetWindow(typeof(GUIStyleViewer));
  11. }
  12. void OnGUI()
  13. {
  14. GUILayout.BeginHorizontal("HelpBox");
  15. GUILayout.Space(30);
  16. search = EditorGUILayout.TextField("", search, "SearchTextField", GUILayout.MaxWidth(position.x / 3));
  17. GUILayout.Label("", "SearchCancelButtonEmpty");
  18. GUILayout.EndHorizontal();
  19. scrollVector2 = GUILayout.BeginScrollView(scrollVector2);
  20. foreach (GUIStyle style in GUI.skin.customStyles)
  21. {
  22. if (style.name.ToLower().Contains(search.ToLower()))
  23. {
  24. DrawStyleItem(style);
  25. }
  26. }
  27. GUILayout.EndScrollView();
  28. }
  29. void DrawStyleItem(GUIStyle style)
  30. {
  31. GUILayout.BeginHorizontal("box");
  32. GUILayout.Space(40);
  33. EditorGUILayout.SelectableLabel(style.name);
  34. GUILayout.FlexibleSpace();
  35. EditorGUILayout.SelectableLabel(style.name, style);
  36. GUILayout.Space(40);
  37. EditorGUILayout.SelectableLabel("", style, GUILayout.Height(40), GUILayout.Width(40));
  38. GUILayout.Space(50);
  39. if (GUILayout.Button("复制到剪贴板"))
  40. {
  41. TextEditor textEditor = new TextEditor();
  42. textEditor.text = style.name;
  43. textEditor.OnFocus();
  44. textEditor.Copy();
  45. }
  46. GUILayout.EndHorizontal();
  47. GUILayout.Space(10);
  48. }
  49. }