Ну, есть способ, который я нашел, который может решить эту проблему без ручного сохранения каждого параметра.
Во-первых, используя Animator.parameters
(Documentation), мы можем получить все параметры в Animator. Обратите внимание, что оно не включает значение.
Animator.parameters
представляет собой массив из класса AnimatorControllerParameter
, который включает в себя свойство AnimatorControllerParameterType type
, который является перечисление:
public enum AnimatorControllerParameterType
{
Float = 1,
Int = 3,
Bool = 4,
Trigger = 9
}
Итак, теперь мы можем просто назвать такие методы, как GetBool, GetFloat в цикле к получить всю переменную, а затем использовать другой цикл, чтобы установить их, вызвав метод, такой как SetBool и SetFloat
Когда компонент Animator или родительский GameObject отключен, он получает сброс - вам придется написать свой собственный метод для сохранения все параметры в Animator, прежде чем вы d можно использовать GameObject и применять их при повторном включении. – Serlite