完整教程:UFUNCTION C++ 的再次理解
一.UFUNCTION 格式
和属性也比较像,两部分 函数说明符,和元数据说明符


UFUNCTION不仅能 控制对蓝图公开,还能与 绑定委托,用户输入,网络回调特性相关联,而且还能创建自己控制带命令
二.函数说明符控制 ,函数在引擎和编辑器各个反面的UPERPERTY属性说明符类似,属性控制的时变量。

BlueprintPure |
此函数不对拥有它的对象产生任何影响,可在蓝图或关卡蓝图图表中执行。早默认情况下,带有 const 标记的函数将作为纯函数公开。要将常量函数变成非纯函数,你可以做以下声明:BlueprintPure=false
1.纯函数没用引脚。const 就表示不改变里面的变量
UFUNCTION(BlueprintPure)
float BlueprintPureFunction();
UFUNCTION(BlueprintCallable)
float BlueprintCallableFunction();
UFUNCTION(BlueprintCallable)
int32 BlueprintCallableConstFunction() const;
UFUNCTION(BlueprintPure = fasle)
int32 BlueprintPureFalseFunction() const;
在UE 的 C++ 中,const 关键字用于修饰函数,表示该函数不会改变其作用域内的变量值。 添加 const 后有以下几个意义: 常量函数:当你声明一个函数为 const,则表明它不会修改任何外部对象的状态,这对于安全性和提高代码效率很有帮助,因为编译器可以对这类函数进行优化

2.纯函数没有引脚,输出引脚连两次的话,哪怕是打印函数,可能会执行两次逻辑。
3.BlueprintImplementableEvent
BlueprintImplementableEvent | 此函数可在蓝图或关卡蓝图图表中实现。
感觉官方不够准却,记住一定不要再 .cpp里写定义。它一定要在蓝图里才能定义,头文件声明一下就行了。
4.BlueprintNativeEvent
| 此函数旨在被蓝图覆盖掉,但是也具有默认原生实现。用于声明名称与主函数相同的附加函数,但是末尾添加了_Implementation,是写入代码的位置。如果未找到任何蓝图覆盖,该自动生成的代码将调用 _Implementation 方法。
这里官方还比较明确了,蓝图覆盖不了,再用.cpp里的原生的。
5.BlueprintAuthorityOnly | 如果在具有网络权限的机器上运行(服务器、专用服务器或单人游戏),此函数将仅从蓝图代码执行。


只在服务器上进行伤害,本地不会。
浙公网安备 33010602011771号