hyperLinkClicked
Event used to react on clicks on a text hyperlink part.
Read time 2 minutesLast updated 5 days ago
Definition
- Type: Event
- Namespace: UnityEditor
- Assembly: UnityEditor
public static event Action<EditorWindow, HyperLinkClickedEventArgs> hyperLinkClicked
Remarks
On a rich text string, a hyperlink is defined with the tag.
<c><a href="https://docs.unity3d.com">Documentation link</a></c>
The hyperlink parameters are returned in the HyperLinkClickedEventArgs.
In the example above, the hyperLinkData dictionary will have one element of key "href" and of value "https://docs.unity3d.com".
Do note that this parameter is already covered by default to open uri. It also handles paths and you can add the line parameter to open the file directly on a specific line.
It is possible to have only part of a string in a hyperlink or even multiple hyperlinks per string.
This is the <c><a href=\"https://unity.com/\">unity website</a></c> and this is the <c><a href=\"https://docs.unity3d.com\">unity documentation website</a></c>
The event contains information only on the hyperlink part that is clicked.
Use the window parameter in order to react only on hyperlinks that were clicked in that window. If you don't filter on the window, you might react to other hyperlinks like the ones in the Console or the Profiler.
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}"); } }}