うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【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);
    }
}