Unity 动态加载并播放3D max导入的模型非自身动画(Animation)的方法
2019-01-09 10:19
1456 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wks310/article/details/86134484
带有动画的3D max 模型导入Unity中,一般会自动设置为Animator的新动画系统,若想使用Animation的形式播放,需要进行一下设置。
1、在Project中找到导入的模型物体FBX,打开Inspector面板
2、在Inspector中选择Rig中Animation Type,将Generic 设置为Legacy,如下图
3、点击Apply,完成由Animator转换为Animation,如下图
在开发过程可能会出现,模型需要播放另一个相同模型中的另一段动画片段时的问题,我们可以将需要播放动画的模型的Fbx放入Resources中,通过代码动态加载该模型的动画片段指定给另一个模型物体进行播放动画。
自己封装一个方法
代码如下:
/// <summary> /// 播放物体动画 /// </summary> /// <param name=" AnimObject ">动画物体</param> /// <param name="AnimClipPathName">动画物体路径名</param> /// <param name="isLoop">是否循环播放</param> public void PlayAnimationByAnimClip( GameObject AnimObject ,string AnimClipPathName,bool isLoop) { Animation anim=null; AnimationClip animClip = null; animClip = LoadAnimationClipByPathNameFromRes(AnimClipPathName); if ( AnimObject != null&& animClip!=null ) { AnimObject.SetActive(true); anim = AnimObject.GetComponent<Animation>(); if ( anim ==null) anim = AnimObject.AddComponent<Animation>(); anim.AddClip(animClip, animClip.name); anim.playAutomatically = false; if ( isLoop == false ) { anim.wrapMode = WrapMode.Default; } else { anim.wrapMode = WrapMode.Loop; } if ( anim.isPlaying ) return; anim[animClip.name].time = 0; anim.Play(animClip.name); } else { } } AnimationClip LoadAnimationClipByPathNameFromRes(string AnimClipPathName) { return (AnimationClip)Resources.Load("Animation/"+ AnimClipPathName, typeof(AnimationClip)); }
相关文章推荐
- Irrlicht导入3D模型控制动画播放
- 关于Unity3D动画播放时出现“抽搐”现象的解决方法
- 导入Unity的模型在播放动画时手脚会轻微晃动(抖动)
- 3D max模型导入unity 3D中注意事项
- 3ds Max 烘焙模型导入 Unity 3D 步骤
- unity结合MMD发布android不显示模型不播放动画问题解决方法
- Unity3D animation import issue | 模型导入,动画无法播放问题
- 3ds Max 烘焙模型导入 Unity 3D 步骤
- WPF 3D动态加载模型文件
- unity animation 动画播放
- 【Unity实用小技巧】设置动画模型循环播放
- unity5.6中模型动画不显示的解决方法
- Maya里面的模型动画导入Unity使用
- Unity 3d导入3dMax模型 产生若干问题
- Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址
- cocos2d-x JS 加载播放Studio帧动画的两种方法
- Unity中3D模型动画的基础用法
- 【H5 3D应用开发】 Three.js 播放json模型动画并切换动画(一)
- Unity中在界面上显示3D模型的方法
- [Unity]运行时用AnimatorOverrideController动态加载动画片段