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);
            }
        }