【转载】UE4 面试基础知识(一)

1、Actor 的 EndPlay 事件在哪些时候会调用?

EndPlay - 在数个地方调用,保证 Actor 的生命走向终点。在游戏过程中,如包含流关卡的 Actor 被卸载,Destroy 将发射此项和关卡过渡。调用 EndPlay 的全部情形:

  • 对 Destroy 显式调用
  • Play in Editor 终结
  • 关卡过渡(无缝行程或加载地图) 包含 Actor 的流关卡被卸载
  • Actor 的生命期已过
  • 应用程序关闭(全部 Actor 被销毁)

Actor 生命周期

2、BlueprintImplementableEventBlueprintNativeEvent 之间有什么区别?

BlueprintImplementableEventBluuprintNativeEvent 两者都是函数标记,用于修饰函数的。

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、如何解决子弹穿墙问题?

  1. 如果采用的是射线检测的话,LineTracebyChannel 函数只会返回首个命中对象

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值