【UE4学习】13_UFUNCTION 关键字解释

本文深入探讨了UE4中的UFUNCTION关键字,包括BlueprintCallable的使用,它允许蓝图重载C++函数。同时,介绍了BlueprintNativeEvent,它使得函数可以被蓝图覆盖,但通过C++_Implementation()仍能调用原始实现。此外,还提到了Exec关键字,用于创建可以从游戏控制台执行的函数,特定于某些游戏类。

在本文中,将会陆续使用程序实例来解释关键字


(1)关键字 part 1

BlueprintCallable
BlueprintImplementableEvent
Category


BlueprintCallable 进一步用法

### UE4UFUNCTION 宏的用法 UFUNCTIONUnreal Engine 4 (UE4) 中用于定义蓝图可调用函数的关键字。此宏允许 C++ 函数暴露给蓝图编辑器,从而可以在蓝图中直接调用这些函数。 #### 基本语法 UFUNCTION 的基本声明如下: ```cpp UCLASS() class MYPROJECT_API AMyClass : public AActor { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "Example") void MyFunction(); }; ``` - `BlueprintCallable` 表示该函数可以从蓝图中被调用。 - `Category` 参数指定了在蓝图节点浏览器中的分类名称[^1]。 #### 返回值和参数传递 可以指定返回类型以及输入参数来增强功能: ```cpp UFUNCTION(BlueprintCallable, Category="Math|Addition") float AddNumbers(float A, float B); ``` 这段代码创建了一个名为 `AddNumbers` 的函数,在蓝图中显示于 “Math/Addition” 类别下,并接受两个浮点数作为参数并返回它们相加的结果。 #### 调用约定 对于某些特定类型的函数,比如事件处理程序或定时器回调,可以通过设置不同的元标签来改变其行为模式: ```cpp // Event handler example UFUNCTION() void OnOverlapBegin(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); // Timer callback example FTimerHandle MyTimer; GetWorld()->GetTimerManager().SetTimer(MyTimer, this, &AMyClass::TickEverySecond, 1.0f, true); ``` 上述例子展示了如何通过 UFUNCTION 来定义重叠事件处理器和计时器回调方法。 #### 静态函数支持 如果希望某个类的方法能够像静态成员一样工作,则需加上 `BlueprintStatic` 关键字标记: ```cpp UFUNCTION(BlueprintPure, BlueprintStatic, Category = "Utility") static FVector ConvertToVector(FString StringVec); ``` 这使得 `ConvertToVector` 成为了一个纯虚静态函数,既能在C++端也能在蓝图里当作工具函数使用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值