当 Animator 附加 GameObject 变为禁用时,如何保留其参数值?
How to keep the parameters' values of the Animator when it attached GameObject became disable?
当我禁用一个游戏对象时,我发现 Animator 中的所有值都变成了默认值。那么有什么方法可以保留它们,或者在启用游戏对象后恢复它们?
或者唯一的方法是手动保存它们?
好吧,我发现有一种方法可以解决这个问题,而无需手动保存每个参数。
首先,通过使用Animator.parameters
(Documentation),我们可以得到Animator中的所有参数。请注意,它不包括值。
Animator.parameters
是 classAnimatorControllerParameter
的数组,其中包含一个名为 AnimatorControllerParameterType type
的 属性,它是一个枚举:
public enum AnimatorControllerParameterType
{
Float = 1,
Int = 3,
Bool = 4,
Trigger = 9
}
所以现在,我们可以简单地调用GetBool, GetFloat in a loop to get all the variable, then use another loop to set them by calling the method such as SetBool和SetFloat
等方法
当我禁用一个游戏对象时,我发现 Animator 中的所有值都变成了默认值。那么有什么方法可以保留它们,或者在启用游戏对象后恢复它们?
或者唯一的方法是手动保存它们?
好吧,我发现有一种方法可以解决这个问题,而无需手动保存每个参数。
首先,通过使用Animator.parameters
(Documentation),我们可以得到Animator中的所有参数。请注意,它不包括值。
Animator.parameters
是 classAnimatorControllerParameter
的数组,其中包含一个名为 AnimatorControllerParameterType type
的 属性,它是一个枚举:
public enum AnimatorControllerParameterType
{
Float = 1,
Int = 3,
Bool = 4,
Trigger = 9
}
所以现在,我们可以简单地调用GetBool, GetFloat in a loop to get all the variable, then use another loop to set them by calling the method such as SetBool和SetFloat
等方法