コガネブログ

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

【Unity】インスタンス ID からゲームオブジェクトやアセットを取得する方法

エディタ拡張の場合

var obj = EditorUtility.InstanceIDToObject( instanceId );

EditorUtility.InstanceIDToObject を使用する

ランタイムの場合

public static Object FindObjectFromInstanceID( int instanceId )
{
    var type = typeof( Object );

    var methodInfo = type.GetMethod
    (
        name: "FindObjectFromInstanceID",
        bindingAttr: BindingFlags.NonPublic | BindingFlags.Static
    );

    return ( Object )methodInfo.Invoke
    (
        obj: null,
        parameters: new object[] { instanceId }
    );
}

上記のような関数を作成して使用する