版本:Unity 6 (6000.0)
语言英语
  • C#

EditorGUI.hyperLinkClicked

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户建议的每项更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,无法提交您建议的更改。请在几分钟内再试一次。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

参数

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}");
        }
    }
}