private void Awake()
 {
     mover               = GetComponent <Mover>();
     animator            = GetComponent <Animator>();
     currentWeaponConfig = defaultWeaponConfig;
     currentWeapon       = new LazyValue <Weapon>(SetDefaultWeapon);
 }
 public void RestoreState(object state)
 {
     if (tag == "Player")
     {
         string       weaponName   = (string)state;
         WeaponConfig weaponToLoad =
             UnityEngine.Resources.Load <WeaponConfig>(weaponName);
         EquipWeapon(weaponToLoad);
     }
     else
     {
         EquipWeapon(defaultWeaponConfig);
     }
 }
 private Weapon AttachWeapon(WeaponConfig weapon)
 {
     return(weapon.Spawn(rightHandTransform, leftHandTransform, animator));
 }
 public void EquipWeapon(WeaponConfig weapon)
 {
     currentWeaponConfig = weapon;
     currentWeapon.value = AttachWeapon(weapon);
 }