Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

RichEditorWindow.cs 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using UnityEngine;
  2. namespace UnityEditor.Purchasing
  3. {
  4. internal class RichEditorWindow : EditorWindow
  5. {
  6. private const string kLightLinkIconPath = "Packages/com.unity.purchasing/Icons/LinkWhite.png";
  7. private const string kDarkLinkIconPath = "Packages/com.unity.purchasing/Icons/LinkBlack.png";
  8. private GUIStyle m_LinkStyle;
  9. private Texture m_LightLinkIcon;
  10. private Texture m_DarkLinkIcon;
  11. internal RichEditorWindow()
  12. {
  13. }
  14. internal void GUILink(string linkText, string url)
  15. {
  16. m_LightLinkIcon ??= AssetDatabase.LoadAssetAtPath<Texture>(kLightLinkIconPath);
  17. m_DarkLinkIcon ??= AssetDatabase.LoadAssetAtPath<Texture>(kDarkLinkIconPath);
  18. m_LinkStyle ??= new GUIStyle();
  19. m_LinkStyle.normal.textColor = EditorGUIUtility.isProSkin ? Color.cyan : Color.blue;
  20. m_LinkStyle.contentOffset = new Vector2(6, 0); // Indent like other labels
  21. var linkIcon = EditorGUIUtility.isProSkin ? m_LightLinkIcon : m_DarkLinkIcon;
  22. var linkSize = m_LinkStyle.CalcSize(new GUIContent(linkText));
  23. GUILayout.Label(linkText, m_LinkStyle);
  24. var linkRect = GUILayoutUtility.GetLastRect();
  25. if (linkIcon != null)
  26. {
  27. GUI.Label(new Rect(linkSize.x, linkRect.y, linkRect.height, linkRect.height), linkIcon);
  28. }
  29. else
  30. {
  31. Debug.LogWarning("Cannot get icon: " + kLightLinkIconPath);
  32. }
  33. if (Event.current.type == EventType.MouseUp && linkRect.Contains(Event.current.mousePosition))
  34. {
  35. Application.OpenURL(url);
  36. }
  37. }
  38. }
  39. }