はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】エディタ拡張でスクリプトからテキストエディタを開く方法(InternalEditorUtility.OpenFileAtLineExternal)

はじめに

今回はスクリプトからテキストエディタを開く方法について紹介をしたいと思います。

概要

公式ドキュメントに記載はないのですが、UnityCsReference(中のコード)をみるとInternalEditorUtilityクラスなるものが定義されており、これを利用することでテキストエディタを開くことができます。

public static bool OpenFileAtLineExternal(string filename, int line)
{
    if (!CodeEditor.Editor.CurrentCodeEditor.OpenProject(filename, line))
    {
        return OpenFileAtLineExternal(filename, line, 0);
    }
    return true;
}

github.com

また注意点としてInternalEditorUtilityはエディタ上でのみ動作するので注意です。

使い方

public class Sample : MonoBehaviour
{
    private void Start()
    {
        var fileName = "Assets/Scripts/Test.cs";
        var line = 0;
        
        // fileNameのline行目をテキストエディタで開く    
        InternalEditorUtility.OpenFileAtLineExternal(fileName, line);
    }
}

さいごに

InternalEditorUtilityをよくみてみると、結構色々な機能が載っていたりします。チェックしてみると面白い機能が見つかるかもしれません。

github.com