うにてぃブログ

UnityやUnreal Engineの記事を書いていきます

【Unity】パスからアセットを検索する

Assets/ が含まれているパスがクリップボードにある状態で
これを実行するとパスで指定しているオブジェクトを選択状態にしてくれます

using UnityEditor;
using UnityEngine;
 
public class SelectFromClipboard
{
    [MenuItem("Tools/SelectAssetFromClipboard")]
    private static void SelectAsset()
    {
        var path = GUIUtility.systemCopyBuffer;
        if (!path.Contains("Assets/") && !path.Contains("Assets\\"))
            return;
 
        if (!path.StartsWith("Assets"))
        {
            var index = path.IndexOf("Assets");
            path = path.Substring(index);
        }
        path = path.Replace("\\", "/");
        var asset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path);
        if (asset == null)
            return;
 
        Selection.activeObject = asset;
        EditorGUIUtility.PingObject(asset);
    }
}