蓝图中函数(Function),纯虚函数(PureFunction),自定义事件(CustomEvent),蓝图宏(BlueprintMacro)以及事件调度器的区别
函数VS纯虚函数
- 纯虚函数必须要有返回值
- 都有临时变量(局部变量),这个变量会在每次进入函数的时候恢复成默认值。
-
【关键】调用方式:普通函数是有执行线的而调用纯虚函数用的是返回值
普通函数的返回值只要是在同一条执行线后面,那么从返回节点引出来的结果绝对是相同的,因为这个函数只会执行一次
而纯虚函数,你每次引出使用返回值,都会执行一次这个函数,所以它的结果有可能不一样。
自定义事件
-
自定义事件的代理
-
自定义事件的RPC
- 自定义事件不能有返回值
-
自定义事件的事件还可以在编辑器实例(拖入场景中的对象)中调用,只需要勾选(但是不能有输入值)
- 一些只能在EventGraph中调用的节点,如时间轴。
-
都存在于同一空间,所以可以完成很多奇淫技巧
蓝图宏
我们先看看蓝图宏比其他的方法多了些什么
- 它可以像纯虚函数一样不需要执行节点,但是不同的是纯虚函数内部是有Exec的,而这样的宏没有Exec的,也就只能使用没有Exec的节点了
- 可以有多个输出Exec和输入Exec,ForLoop循环就是宏做的,你可以双击查看实现
-
蓝图宏有类似于函数的局部变量,名叫本地变量Local,但是请注意,完全不一样,无论是值的限制,赋值方式都不一样。这个值是具有持久性的(Persistent)。
这个本地变量在不同的地方(作用空间:EventGraph/函数/宏)执行,其结果也不相同
在EventGraph中调用:它的值是不会在这个宏调用结束后清空,意思就是这个值是持久的,
在函数中直接调用:它的值会在,函数执行结束后(Return)清空,这个持久性只维持在这个函数中。
在函数中调用自定义事件中的宏:结果于在EventGraph中调用一致,因为实际上还是在EventGraph中调用
在宏中调用宏:根据上面不同情况结果也不同。