【Unity】コンポーネントのプロパティ名を取得する

UnityのEditor拡張時に、プロパティ名が知りたいときがあります。 プロパティ名を知る方法はいくつかあります。

差分を見る

Gitの差分を見れば、プロパティ名がわかります。 SourceTreeの例ですが、画面上に次の画像のように表示されます。

SourceTreeの差分の例

Editor拡張

SerializeObjectを使えば、コードで取得が可能です。 UnityのTimelineを拡張する際に、GatherProperties関数で使えそうです。。

var serializedObject = new SerializedObject(component);
var iterator = serializedObject.GetIterator();
while (iterator.NextVisible(true))
{
    if (iterator.hasVisibleChildren)
    {
        continue;
    }

    driver.AddFromName<TBinding>(component.gameObject, iterator.propertyPath);
}