一.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
| 如果在具有网络权限的机器上运行(服务器、专用服务器或单人游戏),此函数将仅从蓝图代码执行。
只在服务器上进行伤害,本地不会。