private void FillMissingTransformCurves(string parent, List <EditorCurveBinding> bindings) { if (!AnimationWindowUtility.IsActualTransformCurve(bindings[0]) || bindings.Count == 3) { return; } string prefixProperyName = bindings.First().propertyName.Split('.').First(); if (bindings.FirstOrDefault(p => p.propertyName.EndsWith(".x")) == default) { var b = EditorCurveBinding.FloatCurve(string.Empty, typeof(Transform), prefixProperyName + ".x"); b.isPhantom = true; bindings.Insert(0, b); } if (bindings.FirstOrDefault(p => p.propertyName.EndsWith(".y")) == default) { var b = EditorCurveBinding.FloatCurve(string.Empty, typeof(Transform), prefixProperyName + ".y"); b.isPhantom = true; bindings.Insert(1, b); } if (bindings.FirstOrDefault(p => p.propertyName.EndsWith(".z")) == default) { var b = EditorCurveBinding.FloatCurve(string.Empty, typeof(Transform), prefixProperyName + ".z"); b.isPhantom = true; bindings.Insert(2, b); } }