private void curveClipControl_RequestEdit(object sender, CurveClipWrapperEventArgs e) { if (sender is CinemaCurveClipItemControl) { this.togglEditItemControl(sender as CinemaCurveClipItemControl); } }
protected virtual void CinemaCurveControl_CurvesChanged(object sender, CurveClipWrapperEventArgs e) { if (e.wrapper == null) { return; } CinemaClipCurveWrapper wrapper = e.wrapper; CinemaClipCurve clipCurve = wrapper.Behaviour as CinemaClipCurve; if (clipCurve == null) { return; } Undo.RecordObject(clipCurve, string.Format("Changed {0}", clipCurve.name)); for (int i = 0; i < clipCurve.CurveData.Count; i++) { MemberClipCurveData member = clipCurve.CurveData[i]; CinemaMemberCurveWrapper memberWrapper = null; if (wrapper.TryGetValue(member.Type, member.PropertyName, out memberWrapper)) { int showingCurves = UnityPropertyTypeInfo.GetCurveCount(member.PropertyType); for (int j = 0; j < showingCurves; j++) { member.SetCurve(j, new AnimationCurve(memberWrapper.AnimationCurves[j].Curve.keys)); } } } clipCurve.Firetime = wrapper.Firetime; clipCurve.Duration = wrapper.Duration; EditorUtility.SetDirty(clipCurve); }