value | 类型为 EditorWindow 的第一个参数对应于含单击文本的窗口。类型为 HyperLinkClickedEventArgs 的第二个参数含超链接数据。 |
用于对点击文本超链接部分做出反应的事件。
在富文本字符串中,超链接使用 <a> 标记定义。
<a href="https://docs.unity3d.org.cn">Documentation link</a>
超链接参数在 HyperLinkClickedEventArgs 中返回。
在上面的示例中,HyperLinkClickedEventArgs.hyperLinkData 字典将有一个键为“href”、值为“https://docs.unity3d.org.cn”的元素。
请注意,此参数已默认覆盖为打开 URI。它也处理路径,而您可以添加“line”参数以直接在特定行打开文件。
在一个超链接中仅有一部分字符串,甚至每个字符串有多个超链接。
This is the <a href=\"https://unity.com/\">unity website</a> and this is the <a href=\"https://docs.unity3d.org.cn\">unity documentation website</a>
事件仅包含已单击超链接部分的信息。
使用窗口参数以仅对该窗口中单击的超链接做出反应。如果您未在窗口中进行筛选,您可能会对其他超链接(如控制台或性能分析器中的超链接)做出反应。
using System; using UnityEditor; using UnityEngine; class EditorGUIHyperLinkClicked : EditorWindow { [MenuItem("Examples/EditorGUIHyperLinkClicked")] static void Init() { var window = GetWindow<EditorGUIHyperLinkClicked>(); window.Show(); } void OnGUI() { GUIStyle style = new GUIStyle() { richText = true }; EditorGUILayout.TextField("<a data=\"some data\" otherData=\"some other data\">displayed string</a>", style); } static EditorGUIHyperLinkClicked() { EditorGUI.hyperLinkClicked += EditorGUI_hyperLinkClicked; } private static void EditorGUI_hyperLinkClicked(EditorWindow window, HyperLinkClickedEventArgs args) { if (window.titleContent.text == "EditorGUIHyperLinkClicked") { var hyperLinkData = args.hyperLinkData; var data = hyperLinkData["data"]; var otherData = hyperLinkData["otherData"]; Debug.Log($"data: {data}, otherData: {otherData}"); } } }