
上QQ阅读APP看书,第一时间看更新
Creating a UFUNCTION
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()
.
How to do it...
- 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 by clicking on yourWarrior
instance. Then, in a Blueprints diagram, type inToString()
. It should look like in the following screenshot:
Tip
In order to call a function on an instance, the instance must be selected in the World Outliner when you start to type into the autocomplete menu in the Blueprints diagram, as shown in the following screenshot:

How it works…
UFUNCTION()
are really C++ functions, but with additional metadata that make them accessible to Blueprints.