Below are some common reasons why weapons and items don’t equip or store…
1. Animation Events
On your equip or store animation, you need an animation event that tells the motion when to create or destroy the weapon.
The Function parameter for that animation event needs to be “OnAnimationEvent”.
Even with the event being there, it may not be firing.
If the event is too early, you may be in a transition to this animation. During transitions, Unity only fires animation events on the “old” animation. So, if your animation event occurs while the transition is happening it will be ignored.
If the event is too late, you may have transitioned out of the animation before you ever got to the animation event.
2. Non-Unique Motions
Say you setup the Sword & Shield Motion Pack on the first layer, but you setup the Archery Motion Pack on the second layer… that means you have a Basic Item Equip motion on the first layer AND the second layer.
When you equip the bow, it will use the equip motion you specify. However, if there are two motions that have the same name, you could get the motion on the wrong layer.
In this situation, we want to give the Basic Item Equip motions different names.
For example, name the Basic Item Equip motion on the second layer to “BasicItemEquip1”.
Then, in the Item definition of the Weapon Set, specify the motion used to equip the bow to “BasicItemEquip1”.
Now there’s no ambiguity between which motion will equip the item.