Unity - 动画控制器 - 存储先前的状态
Unity - Animator Controller - Store previous state
我有一个带 4 个抽屉的储物柜。每个抽屉都是一个单独的对象。每个抽屉都有自己的打开动画。我有过渡问题。如果我打开第一个抽屉然后打开第二个(或第三个),第一个抽屉会自动关闭。
下图为第一个动画后的对象(ThirdDrawer_Open)
下图为第二个动画后的对象(SecondDrawer_Open)
我想存储以前的动画状态,所以当我打开第二个抽屉时,前一个不会close/end。
根据 Animation States
文档,您可以编辑状态的各种公开属性。一个属性被称为Write Defaults
。在文档中,它被描述为
Whether or not the AnimatorStates writes back the default values for
properties that are not animated by its Motion.
在您的情况下,如果每当您更改抽屉的状态时启用此功能,它会将默认值写回其他抽屉,导致它们关闭。一个解决方案是取消切换此 属性,这样默认值就不会被写入,或者您可以在运行时使用 WriteDefaultValues
强制覆盖这些值。我通常更喜欢之前的解决方案,因为 WriteDefaults
有时会让人头疼。
我有一个带 4 个抽屉的储物柜。每个抽屉都是一个单独的对象。每个抽屉都有自己的打开动画。我有过渡问题。如果我打开第一个抽屉然后打开第二个(或第三个),第一个抽屉会自动关闭。
下图为第一个动画后的对象(ThirdDrawer_Open)
下图为第二个动画后的对象(SecondDrawer_Open)
我想存储以前的动画状态,所以当我打开第二个抽屉时,前一个不会close/end。
根据 Animation States
文档,您可以编辑状态的各种公开属性。一个属性被称为Write Defaults
。在文档中,它被描述为
Whether or not the AnimatorStates writes back the default values for properties that are not animated by its Motion.
在您的情况下,如果每当您更改抽屉的状态时启用此功能,它会将默认值写回其他抽屉,导致它们关闭。一个解决方案是取消切换此 属性,这样默认值就不会被写入,或者您可以在运行时使用 WriteDefaultValues
强制覆盖这些值。我通常更喜欢之前的解决方案,因为 WriteDefaults
有时会让人头疼。