UFUNCTION()
are useful because they are C++ functions that can be called from both your C++ client code as well as Blueprints diagrams. Any C++ function can be marked as a UFUNCTION()
.
Construct a
UClass
with a member function that you'd like to expose to Blueprints. Decorate that member function withUFUNCTION( BlueprintCallable, Category=SomeCategory)
to make it callable from Blueprints. For example, the following is theWarrior
class again:// Warrior.h class WRYV_API AWarrior : public AActor { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Properties) FString Name; UFUNCTION(BlueprintCallable, Category = Properties) FString ToString(); }; // Warrior.cpp FString UProfile::ToString() { return FString::Printf( "An instance of UProfile: %s", *Name ); }
Create an instance of your
Warrior
class by dragging an instance on to your game world.From Blueprints, call the
ToString()
function on thatWarrior
instance...