public static AnimationClipStatsInfo GetAnimationClipStats(AnimationClip clip)
            {
                if (getAnimationClipStats == null)
                {
                    getAnimationClipStats = typeof(AnimationUtility).GetMethod("GetAnimationClipStats", BindingFlags.Static | BindingFlags.NonPublic);
                    var aniclipstats = typeof(AnimationUtility).Assembly.GetType("UnityEditor.AnimationClipStats");
                    sizeInfo           = aniclipstats.GetField("size", BindingFlags.Public | BindingFlags.Instance);
                    totalCurvesInfo    = aniclipstats.GetField("totalCurves", BindingFlags.Public | BindingFlags.Instance);
                    constantCurvesInfo = aniclipstats.GetField("constantCurves", BindingFlags.Public | BindingFlags.Instance);
                    denseCurvesInfo    = aniclipstats.GetField("denseCurves", BindingFlags.Public | BindingFlags.Instance);
                    streamCurvesInfo   = aniclipstats.GetField("streamCurves", BindingFlags.Public | BindingFlags.Instance);
                }

                var stats  = getAnimationClipStats.Invoke(null, new object[] { clip });
                var stats2 = new AnimationClipStatsInfo
                {
                    size           = (int)sizeInfo.GetValue(stats),
                    totalCurves    = (int)totalCurvesInfo.GetValue(stats),
                    constantCurves = (int)constantCurvesInfo.GetValue(stats),
                    denseCurves    = (int)denseCurvesInfo.GetValue(stats),
                    streamCurves   = (int)streamCurvesInfo.GetValue(stats),
                };

                return(stats2);
            }
        private static List <KeyValuePair <string, object> > AnalyzeAnimationClip(AnimationClip clip, SerializedObject serializedObject)
        {
            var stats     = AnimationClipStatsInfo.GetAnimationClipStats(clip);
            var propertys = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>("总曲线数", stats.totalCurves),
                new KeyValuePair <string, object>("Constant曲线数", stats.constantCurves),
                new KeyValuePair <string, object>("Dense曲线数", stats.denseCurves),
                new KeyValuePair <string, object>("Stream曲线数", stats.streamCurves),
#if UNITY_5 || UNITY_5_3_OR_NEWER
                new KeyValuePair <string, object>("事件数", clip.events.Length),
#else
                new KeyValuePair <string, object>("事件数", AnimationUtility.GetAnimationEvents(clip).Length),
#endif
                new KeyValuePair <string, object>("内存占用", stats.size),
            };

            return(propertys);
        }