コガネブログ

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

【Unity】AssetDatabase.TryGetAssetFolderInfo の使用例

概要

using UnityEditor;
using UnityEngine;

internal static class Example
{
    [MenuItem( "Tools/Example" )]
    private static void Run()
    {
        var assetGUID = Selection.assetGUIDs[ 0 ];
        var path      = AssetDatabase.GUIDToAssetPath( assetGUID );

        var isAsset = AssetDatabase.TryGetAssetFolderInfo
        (
            path: path,
            rootFolder: out var rootFolder,
            immutable: out var immutable
        );
        
        Debug.Log( $"path: {path}" );
        
        // Unity プロジェクトで管理しているファイルなら true
        Debug.Log( $"isAsset: {isAsset}" );
        
        // Assets フォルダなら true
        Debug.Log( $"rootFolder: {rootFolder}" );
        
        // Package Manager で git から追加したファイルなど
        // 変更できないファイルなら true
        Debug.Log( $"immutable: {immutable}" );
    }
}

Unity 2023.2.0f1 で追加された
AssetDatabase.TryGetAssetFolderInfo を使うと
指定したパスに存在するファイルの情報を取得できます。

参考サイト様