Hum par contre tu peux optimiser ton code pour rendre ça plus court sans avoir besoin d’enregistrer une variable local:
Sinon tu peux sauvegarder un certain nombre d’info lié a chaque type d’arme, genre le model 3D a utiliser, le nombre de balle dans le chargeur, la puissance des balles, le recul de l’arme etc, tous ça ce sont des informations qui peut différer entre chaque arme et qui peuvent être enregistré sous forme de datatable ou data asset, de cette manière tu pourras faire charger et utiliser ces informations par le BaseArme.
Concrètement tu créé un enum genre E_WeaponType (le nom) et tu rentre dedans tous les types d’arme que tu veut faire.
Ensuite tu créé un struct genre Struct_WeaponType, et tu lui met tous les variables qui constitue des informations par type d’arme, genre MagazineSize en integer etc.
Puis tu créé une datatable a partir de la structure que tu viens de créer, genre Data_WeaponType, et sur chaque ligne tu met les informations de tes types d’arme et dans le Row Name tu met la même chose que dans le enum, genre si ta fait ton enum:
WeaponType_Handgun, WeaponType_AK47, WeaponType_SniperRifle etc, du coup tu remet la même chose dans le RowName du datatable, ce qui permet de faire le lien entre l’enum et la datatable.
Ensuite tu créé une variable WeaponType du type de l’enum (E_WeaponType) et WeaponData du type de la structure (Struct_WeaponType) dans ton BaseArme, et du coup dans chacun des blueprint child de BaseArme tu pourras définir le WeaponType.
Et enfin tu créé un fonction pour charger les donnés de la Datatable et stocker ces informations dans la variable créé juste avant WeaponData.
Il te manquera plus qu’a charger cette fonction au début du BeginPlay par exemple dans le BaseArme.
Et du coup ensuite, t’aura plus besoin d’avoir plein de variable a modifier la valeur directement dans le blueprint de l’arme, mais a la place tout centralisé dans le Datatable.
Et du coup pour ta fonction Recharger avec tous ça pris en compte ça donnera ça:
Rien de bien transcendant ici, mais au moins ta accès rapidement aux infos et tu pourras ajouter, modifier ou supprimer des info comme bon te semble directement dans le Structure, puis remplir dans le datatable, et avoir accès dans le BaseArme.