我如何使在动画剪辑中发生的更改永久化?

时间:2019-02-14 00:07:30

标签: unity3d unity3d-mecanim

我想为从正面到背面翻转的卡片制作动画。两张卡片的面孔都有不同的精灵作为背景。

我的卡上有一个Animator组件。动画师将卡围绕z轴旋转180度,并在旋转90度后更改背景精灵。一切正常。

问题在于动画剪辑完成后,精灵会变回原始的精灵。我尝试将动画事件添加到动画剪辑事件功能的末尾,并让动画剪辑执行GetComponent<SpriteRenderer>().sprite = ...,但这也不起作用。即使我在Unity Inspector中更改了卡的精灵,它也不起作用(该精灵实际上并没有改变)。

这是我的动画师的样子(Idle动画没有附加剪辑):

enter image description here

以下是其中一个动画的样子:

enter image description here

有没有办法让我的动画师更改游戏对象的精灵,然后让游戏对象维护新的精灵,直到再次更改它?我知道我可以通过协程以编程方式执行此操作,但是如果不需要,我不想执行解决方法。

2 个答案:

答案 0 :(得分:1)

Afaik,您只需禁用StatesWrite Defaults

这意味着,如果某个属性在此状态下没有可用的关键帧,则使用非动画模型中的默认关键帧(无论您在编辑模式下看到什么,而无需在Animator预览中查看)。

因此,如果禁用它,则此State将使用从动画之前获得的任何当前属性值,而不是未设置动画的值。

答案 1 :(得分:0)

将动画剪辑的包装模式更改为ClampForever。

https://docs.unity3d.com/ScriptReference/WrapMode.ClampForever.html