基础知识(一)"/>
【转载】UE4 面试基础知识(一)
1、Actor 的 EndPlay 事件在哪些时候会调用?
EndPlay - 在数个地方调用,保证 Actor 的生命走向终点。在游戏过程中,如包含流关卡的 Actor 被卸载,Destroy 将发射此项和关卡过渡。调用 EndPlay 的全部情形:
- 对 Destroy 显式调用
- Play in Editor 终结
- 关卡过渡(无缝行程或加载地图) 包含 Actor 的流关卡被卸载
- Actor 的生命期已过
- 应用程序关闭(全部 Actor 被销毁)
Actor 生命周期
2、BlueprintImplementableEvent 和 BlueprintNativeEvent 之间有什么区别?
BlueprintImplementableEvent
和 BluuprintNativeEvent
两者都是函数标记,用于修饰函数的。
BlueprintImplementableEvent
:在 C++ 可以声明函数(不能定义,蓝图重写),蓝图定义实现该函数,可以在 C++ 里调用。
BlueprintNativeEvent
:在 C++ 可以声明并定义该函数(带 _Implementation
后缀),蓝图重写实现该函数有优先调用权(蓝图可以重写或不重写 C++ 父类函数),如果没有实现则调用 C++ 实现的版本。
使用方法
UFUNCTION(BlueprintImplementableEvent) void TestA();
UFUNCTION(BlueprintNativeEvent) void TestB();
复制代码
UE4 函数标记 BlueprintImplementableEvent 和 BlueprintNativeEvent 区别
3、BlueprintPure 在什么时候使用?
BlueprintPure
的特点是在 C++ 和蓝图中都可以调用,但是其修饰的函数必须有函数返回值或 函数参数输出,否则会编译失败。被声明的函数不会以任何方式拥有对象,并且可以在蓝图或关卡蓝图图标中执行。 因此,BlueprintPurs
修饰的函数,主要用于
- 数学中的 “+、-、*、/” 操作(数值处理),
- 变量获取节点(获取变量中的部分数据)
UE4 入门-常见的宏-UFUNCTION
UE4 的 BlueprintPure 用法
4、UE4 的蓝图中对于 Foreach 等循环采用的是类似并行的方式,试实现一个串行的方法。
首先需要了解并行和串行的区别。
- 并行通讯:同一时刻,可以一次性执行多步。
- 串行通讯:同一时刻,只能一步一步的执行。
for(int i=0;i<10;i++); // 所以我自己写个循环,不开多线程应该就可以了吧。毕竟没有找到标准答案,只能自己猜测了。求大佬,教教我。
复制代码
5、如何解决子弹穿墙问题?
-
如果采用的是射线检测的话,
LineTracebyChannel
函数只会返
更多推荐
【转载】UE4 面试基础知识(一)
发布评论