AnimationClip切分

在搞动作编辑器的时候有这个需求,美术给了一 套动作的动画片段(起手到收手),现在需要到起手中增加一段其他的动作,然后收手。项目是使用Animator,决定使用三个动作片段衔接来完成这个动作。

根据指定的起始帧将AnimationClip截取生成的AnimationClip。
可以利用Animation.AddClip(AnimationClip clip, string newName, int firstFrame, int lastFrame)

Animation tAnimation = GameObject.Instantiate(new  GameObject()).AddComponent<Animation>();
selectClip.legacy = true; 
tAnimation.AddClip(selectClip, clipName, beginFrame, endFrame);

AnimationClip newClip = tAnimation.GetClip(clipName);
newClip.frameRate = selectClip.frameRate;

var asset = GameObject.Instantiate(newClip); 
asset.legacy = false;
AssetDatabase.CreateAsset(asset, savePath + "/" + clipName + ".anim");
AssetDatabase.SaveAssets();

//销毁上面创建的Gameobject
//...

在Unity 5.x后,如果需要使用Animation组件,则需要把AnimationClip 的Legacy设置成true,AnimationClip.legacy这个是标识是否是使用在旧动画系统,这里需要利用Animation的AddClip方法间接得到新的AnimationClip , 否则是添加不进去的。

上一篇:Unity3d获取在Asset中选中的目录 资源 的路径


下一篇:广告点击数实时统计:Spark StructuredStreaming + Redis Streams