0

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

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

问题是一旦动画剪辑完成,精灵就会变回原来的精灵。我尝试在动画剪辑事件函数的末尾添加一个动画事件并让动画剪辑执行GetComponent<SpriteRenderer>().sprite = ...,但这也不起作用。即使我在 Unity Inspector 中更改了卡片的精灵,这也不起作用(精灵实际上并没有改变)。

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

在此处输入图像描述

这是其中一个动画的样子:

在此处输入图像描述

有没有办法让我的动画师改变我的游戏对象的精灵,然后让游戏对象保持新的精灵,直到它再次改变?我知道我可以通过协程以编程方式做到这一点,但如果没有必要,我不想做一个解决方法。

4

2 回答 2

1

Afaik 你只需要禁用状态Write Defaults

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

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

于 2019-02-14T06:13:59.093 回答
0

将动画剪辑的 wrapmode 更改为 ClampForever。

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

于 2019-02-14T04:42:14.460 回答