资源导入后处理FBX中Animation的修改

修改的前提是设置ModelImporter 中importCameras = true;

然后增加动画属性:

未修改前FBX中的Animation

 修改后FBX中的Animation:

 代码:

public class ModelAnimationTool : AssetPostprocessor
{
    private void OnPostprocessModel(GameObject obj)
    {
        AnimationClipProperty(assetImporter, assetPath);
    }

    private void AnimationClipProperty(AssetImporter import, string path)
    {
        if (Path.GetExtension(path).ToLower() == ".fbx" && path.Contains("Assets/Art/Characters/"))
        {
            UnityEngine.Object[] objs = AssetDatabase.LoadAllAssetsAtPath(path);
            AnimationClip clip = null;
            for (int i = 0; i < objs.Length; i++)
            {
                clip = objs[i] as AnimationClip;
                if (clip != null && clip.name.ToLower() == "city_action")
                {
                    EditorCurveBinding[] curveBindings = AnimationUtility.GetCurveBindings(clip);
                    for (int j = 0; j < curveBindings.Length; j++)
                    {
                        EditorCurveBinding curveBind = curveBindings[j];
                        if (curveBind.type == typeof(Camera))
                        {
                            AnimationCurve animCurve = AnimationUtility.GetEditorCurve(clip, curveBind);
                            AnimationUtility.SetEditorCurve(clip, curveBind, null);
                            curveBind.path = "cam/m_3DHeroCamera";
                            AnimationUtility.SetEditorCurve(clip, curveBind, animCurve);

                            AnimationCurve addCurve = new AnimationCurve();
                            addCurve.AddKey(0, 0);
                            addCurve.AddKey(clip.length, 0);
                            clip.SetCurve("cam/m_3DHeroCamera", typeof(Transform), "m_LocalRotation.x", addCurve);
                            clip.SetCurve("cam/m_3DHeroCamera", typeof(Transform), "m_LocalRotation.y", addCurve);
                            clip.SetCurve("cam/m_3DHeroCamera", typeof(Transform), "m_LocalRotation.z", addCurve);
                        }
                    }
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值