KickWeapon или BlasterWeapon, а не MyBigAllWeaponTypeOfMyWorldClass. И именно GetComponent<BaseWeapon>().Attack() запускает всё шоу после кнопки Fire.Player взялся из неоткуда, а не был следствием PlayerLogic.SpawnNewPlayer(), тогда бы он и имел ссылку на игрока. На худой конец Object.FindObjectOfType