/// <summary> /// Initialize any starting values. /// </summary> protected override void OnEnable() { base.OnEnable(); m_UsableItem = target as UsableItem; m_Item = m_UsableItem.GetComponent <Item>(); m_UsableItem.UseAnimatorAudioStateSet.DeserializeAnimatorAudioStateSelector(m_Item, m_Item.GetComponentInParent <UltimateCharacterController.Character.UltimateCharacterLocomotion>()); m_AttributeManager = m_UsableItem.GetComponent <AttributeManager>(); var character = m_UsableItem.GetComponentInParent <UltimateCharacterController.Character.UltimateCharacterLocomotion>(); if (character != null) { m_CharacterAttributeManager = character.GetComponent <AttributeManager>(); } // After an undo or redo has been performed the animator audio state states need to be deserialized. Undo.undoRedoPerformed += OnUndoRedo; }