コガネブログ

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

【Unity】ディープリンクで Unity エディタのシーンを開いたりできる「Deeplink – Set up deep links into the Unity editor」紹介

はじめに

「Deeplink – Set up deep links into the Unity editor」を Unity プロジェクトに導入することで
ディープリンクで Unity エディタのシーンを開いたりできるようになります

使用例

using Needle.Deeplink;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;

internal static class Example
{
    // ディープリンクで指定された URL をログ出力します
    [DeepLink]
    private static bool LogUrl( string url )
    {
        Debug.Log( url );
        return false;
    }

    // ディープリンクで指定されたシーンを開きます
    [DeepLink( RegexFilter = @"com.unity3d.kharma:open-scene\/(.*)" )]
    private static bool OpenScene( string sceneName )
    {
        Debug.Log( sceneName );

        foreach ( var guid in AssetDatabase.FindAssets( "t:scene " + sceneName ) )
        {
            var path = AssetDatabase.GUIDToAssetPath( guid );
            EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
            EditorSceneManager.OpenScene( path );
            return true;
        }

        return true;
    }
}

上記のようなスクリプトを Unity プロジェクトに追加して

f:id:baba_s:20210920194644p:plain

そのスクリプトが格納されているフォルダに .asmdef を作成して
「Assembly Definition References」に「Needle.Deeplink」を設定して Apply します

f:id:baba_s:20210920194541g:plain

その状態で、例えば Firefox などのブラウザのアドレスバーに
com.unity3d.kharma:open-scene/TestScene と入力して Enter を押すと
Unity エディタで「TestScene」が開くことができます