private ClipCurveData GetOrAddCurveData(string path) { ClipCurveData ret; if (!_curveDic.TryGetValue(path, out ret)) { ret = new ClipCurveData(); ret.path = path.Substring(path.LastIndexOf('/') + 1); ret.rotationCurve = new RotationCurve(); ret.positionCurve = new Vector3Curve(); ret.scaleCurve = new Vector3Curve(); _curveDic.Add(path, ret); } return(ret); }
private void ProcessCurve(AnimationCurve curve, EditorCurveBinding binding) { ClipCurveData curveData = GetOrAddCurveData(binding.path); CurveType curveType = GetCurveType(binding); switch (curveType) { case CurveType.Rotation: SetRotCurveData(curveData.rotationCurve, curve, binding.propertyName); break; case CurveType.Position: SetVector3CurveData(curveData.positionCurve, curve, binding.propertyName); break; case CurveType.Scale: SetVector3CurveData(curveData.scaleCurve, curve, binding.propertyName); break; default: break; } }