Esempio n. 1
0
        /************************************************************************************************************************/

        private bool TryGetCurveBinding(out UnityEditor.EditorCurveBinding binding)
        {
            if (_Clip != null &&
                !string.IsNullOrEmpty(_PropertyName))
            {
                var bindings = UnityEditor.AnimationUtility.GetCurveBindings(_Clip);
                for (int i = 0; i < bindings.Length; i++)
                {
                    binding = bindings[i];
                    if (binding.propertyName == _PropertyName)
                    {
                        return(true);
                    }
                }
            }

            binding = new UnityEditor.EditorCurveBinding();
            return(false);
        }
        private UnityEditor.EditorCurveBinding[] _getCurveGroup(UnityEditor.EditorCurveBinding[] curves, UnityEditor.EditorCurveBinding curve)
        {
            var result = new UnityEditor.EditorCurveBinding[4];

            foreach (var eachCurve in curves)
            {
                if (eachCurve.path == curve.path && eachCurve.type == curve.type)
                {
                    switch (curve.propertyName)
                    {
                    case "m_LocalPosition.x":
                    case "m_LocalPosition.y":
                    case "m_LocalPosition.z":
                        if (eachCurve.propertyName == "m_LocalPosition.x")
                        {
                            result[0] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalPosition.y")
                        {
                            result[1] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalPosition.z")
                        {
                            result[2] = eachCurve;
                        }
                        break;

                    case "m_LocalRotation.x":
                    case "m_LocalRotation.y":
                    case "m_LocalRotation.z":
                    case "m_LocalRotation.w":
                        if (eachCurve.propertyName == "m_LocalRotation.x")
                        {
                            result[0] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalRotation.y")
                        {
                            result[1] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalRotation.z")
                        {
                            result[2] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalRotation.w")
                        {
                            result[3] = eachCurve;
                        }
                        break;

                    case "localEulerAnglesRaw.x":
                    case "localEulerAnglesRaw.y":
                    case "localEulerAnglesRaw.z":
                        if (eachCurve.propertyName == "localEulerAnglesRaw.x")
                        {
                            result[0] = eachCurve;
                        }

                        if (eachCurve.propertyName == "localEulerAnglesRaw.y")
                        {
                            result[1] = eachCurve;
                        }

                        if (eachCurve.propertyName == "localEulerAnglesRaw.z")
                        {
                            result[2] = eachCurve;
                        }
                        break;

                    case "m_LocalScale.x":
                    case "m_LocalScale.y":
                    case "m_LocalScale.z":
                        if (eachCurve.propertyName == "m_LocalScale.x")
                        {
                            result[0] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalScale.y")
                        {
                            result[1] = eachCurve;
                        }

                        if (eachCurve.propertyName == "m_LocalScale.z")
                        {
                            result[2] = eachCurve;
                        }
                        break;
                    }
                }
            }

            return(result);
        }
Esempio n. 3
0
 public UnityEditorInternalAnimationWindowCurve(UnityEngine.AnimationClip clip, UnityEditor.EditorCurveBinding binding, System.Type valueType)
 {
     m_instance = Activator.CreateInstance(UnityTypes.UnityEditorInternal_AnimationWindowCurve, new object[] { clip, binding, valueType });
 }