美文网首页
资源优化:2、降低动画文件大小

资源优化:2、降低动画文件大小

作者: APP4x | 来源:发表于2020-06-07 15:43 被阅读0次

前提:切换资源序列化模式为Force Text
(一般在公司就是这个,因为git只能用text)

打开*.anim文件,可以看到里面浮点数精度比较高,可以降低精度减少动画文件大小
(PS:小心美术diss你,他可能觉得动画不准了)

看一眼:

那么如何优化呢?

public static void ClearAnimation()
    {
        string title = "Clear Animation";

        Object[] objs = Selection.GetFiltered(typeof(AnimationClip), SelectionMode.DeepAssets);
        for (int i = 0; i < objs.Length; i++)
        {
            AnimationClip clip = objs[i] as AnimationClip;
            EditorUtility.DisplayProgressBar(title, "Clear In : " + clip.name, (i + 1) * 1f / objs.Length);
            if (clip)
            {
                EditorCurveBinding[] bindings = AnimationUtility.GetCurveBindings(clip);
                foreach (EditorCurveBinding binding in bindings)
                {
                    if (binding.propertyName.ToLower().Contains("scale"))//删减scale帧,一般都是rotattion和position
                    {
                        AnimationUtility.SetEditorCurve(clip, binding, null);
                    }

                    AnimationCurve curve = AnimationUtility.GetEditorCurve(clip, binding);//动画精度压缩 #.###
                    if (curve != null && curve.keys != null)
                    {
                        Keyframe[] keys = curve.keys;
                        for (int k = 0; k < keys.Length; k++)
                        {
                            Keyframe key = keys[k];
                            key.value = float.Parse(key.value.ToString("f3"));
                            key.inTangent = float.Parse(key.inTangent.ToString("f3"));
                            key.outTangent = float.Parse(key.outTangent.ToString("f3"));
                            keys[k] = key;
                        }
                        curve.keys = keys;

                        AnimationUtility.SetEditorCurve(clip, binding, curve);
                    }
                }
                EditorUtility.SetDirty(clip);
            }
        }
        EditorUtility.ClearProgressBar();
        AssetDatabase.SaveAssets();
    }

基本上能压缩50%以上,可以在insptector视图看压缩前后大小对比:

相关文章

  • 资源优化:2、降低动画文件大小

    前提:切换资源序列化模式为Force Text(一般在公司就是这个,因为git只能用text) 打开*.anim文...

  • APP开发实战126-APP运行速度优化

    30.6运行速度优化 1 网络流量优化,预置资源优化、代码优化和UI性能优化可以有效降低电量消耗。 2 Short...

  • APP开发实战125-APP 电量优化

    30.5电量优化 1 网络流量优化,预置资源优化、代码优化和UI性能优化可以有效降低电量消耗。 2 使用定位功能时...

  • ETM项目周报(4月19日~4月25日)

    项目进展 ETM-Core 01.优化回退机制,降低资源占用,已完成95%开始稳定性测试 02.P2P 网络优化,...

  • Vue性能优化

    性能优化的手段 目标:降低打包后文件大小,提高首屏加载速度 手段: 1.懒加载 运用懒加载则可以将路由对应的页面组...

  • 安卓编程技巧总结(1) 资源与UI布局处理

    资源 RES资源里最应该优化的就是图片了,可以减少安装包大小,可以降低app内存消耗等,一般的优化如下: png压...

  • 性能优化

    一。内存优化的方法就是: 1.降低运行时内存,2.代码优化,3.内存泄漏优化 (一)。降低运行时内存 1. 减少a...

  • Unity中动画资源优化

    这个是转自侑虎的文章 下图中的动画文件不包含Scale曲线,所以这次优化中只压缩了浮点数精度。 我分别对比了动画文...

  • NGINX优化

    Nginx性能优化实践 1.性能优化概述 2.系统性能优化 3.代理服务优化 4.静态资源优化 4.1 静态资源缓...

  • 大数据优化方法总结

    一、CPC优化方法 1、降低出价:关键词出价直接影响PPC,这是降低CPC最直观的方法; 2、质量度优化:必不可少...

网友评论

      本文标题:资源优化:2、降低动画文件大小

      本文链接:https://www.haomeiwen.com/subject/ujdctktx.html