コガネブログ

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

【Unity】ハイパーリンク付きのログ出力ができる「Custom Console Hyperlink handling for Unity」紹介

概要

「Custom Console Hyperlink handling for Unity」を Unity プロジェクトに導入することで
ハイパーリンク付きのログ出力ができるようになります

ハイパーリンクを付与する方法

using Needle;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        // a タグを使用する場合
        Debug.Log( @"<a href=""https://baba-s.hatenablog.com/"">開く</a>" );
        
        // LinkTo 拡張メソッドを使用する場合
        Debug.Log( "開く".LinkTo( "https://baba-s.hatenablog.com/" ) );
    }
}

ログをクリックすると指定した URL を開ける

独自の挙動を付与する方法

using Needle;
using UnityEditor;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Debug.Log( "Main Camera を選択".LinkTo( "ping:Main Camera" ) );
    }

    [HyperlinkCallback]
    private static bool OnHyperlinkClicked( string path, string line )
    {
        if ( path.StartsWith( "ping:" ) )
        {
            var name   = path.Replace( "ping:", "" );
            var camera = GameObject.Find( name );

            EditorGUIUtility.PingObject( camera );
            return true;
        }

        return false;
    }
}