コガネブログ

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

【Unity】指定したアセットが依存するすべてのアセットを取得できる「EditorUtility.CollectDependencies」

概要

EditorUtility.CollectDependencies を使用することで
指定したアセットに依存するすべてのアセットを配列で取得できます

f:id:baba_s:20190306225245p:plain

例えば上記のような 3D モデルのプレハブに対して

using UnityEditor;

public static class Example
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        var objects = Selection.objects;
        var dependencies = EditorUtility.CollectDependencies( objects );

        Selection.objects = dependencies;
    }
}

EditorUtility.CollectDependencies を使用すると

f:id:baba_s:20190306225322p:plain

このモデルが依存しているテクスチャやマテリアル、スクリプト、シェーダ、
メッシュなどが配列で取得できます

参考サイト様