コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】3D 空間に存在する TextMesh Pro の link タグの情報を取得する例

ソースコード

using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;

[DisallowMultipleComponent]
[RequireComponent( typeof( TMP_Text ) )]
internal sealed class Example :
    MonoBehaviour,
    IPointerClickHandler
{
    [SerializeField] private TMP_Text m_text;
    [SerializeField] private Camera   m_camera;

    void IPointerClickHandler.OnPointerClick( PointerEventData eventData )
    {
        var index = TMP_TextUtilities.FindIntersectingLink
        (
            text: m_text,
            position: eventData.position,
            camera: m_camera
        );

        if ( index == -1 ) return;

        var linkInfo = m_text.textInfo.linkInfo[ index ];
        var linkText = linkInfo.GetLinkText();
        var linkId   = linkInfo.GetLinkID();

        Debug.Log( linkText );
        Debug.Log( linkId );
    }
}