public static void GatherAllProperties <T>(UnityEngine.Timeline.IPropertyCollector driver, T component) where T : Component { var so = new SerializedObject(component); var iterator = so.GetIterator(); while (iterator.NextVisible(true)) { if (iterator.hasVisibleChildren) { continue; } driver.AddFromName <T>(component.gameObject, iterator.propertyPath); } }