EditorGUI.hyperLinkClicked
Параметры
| Параметр | Описание |
|---|---|
| значение | Первый параметр типа EditorWindow соответствует окну, содержащему текст, который был нажат. Второй параметр типа HyperLinkClickedEventArgs содержит данные гиперссылки. |
Описание
Событие, используемое для реагирования на щелчки по текстовой части гиперссылки.
В текстовой строке гиперссылка определяется с помощью тега <a>.
<a href="https://docs.unity3d.com">Documentation link</a>
Параметры гиперссылок возвращаются в HyperLinkClickedEventArgs.
В примере выше, словарь HyperLinkClickedEventArgs.hyperLinkData будет иметь один элемент ключа "href" и значения "https://docs.unity3d.com".
Обратите внимание, что этот параметр уже по умолчанию используется для открытия URI. Он также обрабатывает пути и вы можете добавить параметр line для открытия файла непосредственно на конкретной строке.
Возможно иметь только часть строки в гиперссылке или даже несколько гиперссылок на строку.
This is the <a href=\"https://unity.com/\">unity website</a> and this is the <a href=\"https://docs.unity3d.com\">unity documentation website</a>
Событие содержит информацию только о той части гиперссылки, которая была нажата.
Используйте параметр window для того, чтобы реагировать только на гиперссылки, которые были нажаты в этом окне. Если вы не фильтруете по окну, вы можете реагировать на другие гиперссылки, такие как гиперссылки в Консоли или 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}"); } } }