private static string AnimationCurveToString(object value) { if (value == null) { return(string.Empty); } AnimationCurve animationCurve = (AnimationCurve)value; StringBuilder stringBuilder = new StringBuilder(); EnumConverter enumConverter = new EnumConverter(typeof(WrapMode)); stringBuilder.AppendFormat("{0}\n{1}", enumConverter.ConvertToString(animationCurve.postWrapMode), enumConverter.ConvertToString(animationCurve.preWrapMode)); Keyframe[] keys = animationCurve.keys; for (int i = 0; i < keys.Length; i++) { Keyframe keyframe = keys[i]; stringBuilder.AppendFormat("\n{0}, {1}, {2}, {3}", new object[] { AnimationCurveTypeConverter.InvStr(keyframe.inTangent), AnimationCurveTypeConverter.InvStr(keyframe.outTangent), AnimationCurveTypeConverter.InvStr(keyframe.time), AnimationCurveTypeConverter.InvStr(keyframe.value) }); } return(stringBuilder.ToString()); }
private object AnimationCurveToCodeExpression(object value) { AnimationCurve animationCurve = (AnimationCurve)value; StringBuilder stringBuilder = new StringBuilder(); Keyframe[] keys = animationCurve.keys; for (int i = 0; i < keys.Length; i++) { Keyframe keyframe = keys[i]; if (stringBuilder.Length != 0) { stringBuilder.Append(','); } stringBuilder.AppendFormat("new UnityEngine.Keyframe({0}F, {1}F, {2}F, {3}F)", new object[] { AnimationCurveTypeConverter.InvStr(keyframe.time), AnimationCurveTypeConverter.InvStr(keyframe.value), AnimationCurveTypeConverter.InvStr(keyframe.inTangent), AnimationCurveTypeConverter.InvStr(keyframe.outTangent) }); } return(new CodeSnippetExpression(string.Format("new {0}(new UnityEngine.Keyframe[] {{{1}}}) {{postWrapMode = UnityEngine.WrapMode.{2}, preWrapMode = UnityEngine.WrapMode.{3}}}", new object[] { this.m_Type.FullName, stringBuilder, animationCurve.postWrapMode, animationCurve.preWrapMode }))); }