yes, there is a solution without casting
- first, make a function in the parent class and now override it in the child class.
like make a “GetValue” function in the parent class that returns an integer, now override it in child classes to make it return different variables. for example, backpack class returns its capacity, pistol class returns its ammo, vest returns its health, etc.
On second thought, casting is an excellent method for communication between blueprints until they don’t have hardcore references of assets. and you can avoid hardcore referencing by making multilevel inheritance(multilevel parent-child blueprints).
- like in parent class make all variables and functionalities and only child class have all hardcore refrences